Skip to content
This repository has been archived by the owner on Nov 26, 2024. It is now read-only.

LSW::v4::Abort

Ernesto Luis (aka Lohkdesgds Lhuminury) edited this page Feb 29, 2020 · 1 revision

LSW::v4::Abort


  • Arquivo: "abort/abort.h"
  • Tipo: independente

Abort é uma classe de "abort", como o próprio nome sugere. Muitas partes do código podem causar erros se usadas de alguma maneira indesejada ou não planejada, ou até mesmo o sistema pode bloquear acesso a uma pasta ou arquivo por exemplo. Em situações como essa diversas partes do código fazem throw Abort::abort com os argumentos detalhados a seguir:


Abort::Abort(std::string, std::string, abort_level, std::function<void(void)>);

  • A primeira std::string é chamada pelo MACRO __FUNCSIG__ do Visual Studio. Dessa maneira é possível saber facilmente de onde veio o problema, já que ela descreve o caminho da função por completo.
  • A segunda std::string é um texto explicando qual foi o problema. Isso é escrito por mim no código para facilitar ainda mais a compreensão do problema.
  • O abort_level é um enum class com os valores GIVEUP, WARN ou FATAL_ERROR.
    • GIVEUP é usado quando algo acontece e não tem como o código sair de lá, mas não necessariamente precisa fechar o jogo (pode continuar mesmo com o erro, se quiser, em geral).
    • WARN é semelhante ao GIVEUP, mas geralmente é para destacar que algo não está funcionando como previsto, como lag no programa ou coisas semelhantes. O programa em si ainda pode prosseguir na maioria das vezes, mas talvez tenham efeitos colaterais, como não pegar o movimento do mouse acontecendo naquela hora ou não perceber alguma outra coisa
    • FATAL_ERROR é o pior de todos. Se deu isso, você tem que terminar o programa. Se tentar continuar nada é garantido. Geralmente esse erro acontece quando por exemplo ele não consegue carregar uma textura, criar uma tela, criar as threads necessárias pro programa rodar e por aí vai.
  • std::function<void(void)> é uma função auxiliar que pode ser definida se alguma coisa tenha que ser feita depois do problema, talvez fechar um arquivo ou terminar um processo.

Os itens acima podem ser obtidos ou usados facilmente num catch com as funções getWhereFrom(), getDetails(), getLevel() e runFunctionIfAny().

Clone this wiki locally