Tratamento de Exceções em "C"/C++
Exceções
O Tratamento de Exceções nos permite reagir a circunstancias excepcionais no nosso programa transferindo o controle para funções especiais chamadas handlers.
Para que possamos capturar uma exceção precisamos determinar uma área de inspeção do código, ou seja, um trecho de código onde se um erro ocorrer será detectado. Para isso existe o bloco chama try. quanto uma situação excepcional ocorre dentro desse trecho de código é lançado uma excessão que transfere o controle para um tratador de excessão.
Uma situação excepcional é lançada com o comando throw, que quando é lançado dentro de um bloco try o controle passa para o tratador declarado pelo comando
catch.
Exceção padrão
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// exceptions #include <iostream> using namespace std; int main () { try { throw 20; } catch (int e) { cout << "An exception occurred. Exception Nr. " << e << endl; } return 0; } |
An exception occurred. Exception Nr. 20 |
Exceção padrão
| 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// standard exceptions #include <iostream> #include <exception> using namespace std; class myexception: public exception { virtual const char* what() const throw() { return "My exception happened"; } } myex; int main () { try { throw myex; } catch (exception& e) { cout << e.what() << endl; } return 0; } |
My exception happened. |
| exception | description |
|---|---|
| bad_alloc | thrown by new on allocation failure |
| bad_cast | thrown by dynamic_cast when fails with a referenced type |
| bad_exception | thrown when an exception type doesn't match any catch |
| bad_typeid | thrown by typeid |
| ios_base::failure | thrown by functions in the iostream library |
Excessão Fila Cheia
|
1 |
//arquivo excessao FilaCheia.h } |
Última atualização: sexta-feira, 9 mar. 2018, 07:10