Commit 4e84c18c authored by Samuel Oliveira's avatar Samuel Oliveira

Arquivos de exceções upados

parent 95689b9a
#include <iostream>
using namespace std;
class TrataDivZero{
private:
int NLinha;
public:
TrataDivZero(int n);
void Msg();
};
TrataDivZero::TrataDivZero(int n)
{
NLinha = n;
}
void TrataDivZero::Msg()
{
cout << "Tratador de erro foi chamado ..." << endl;
cout << "Erro na linha: " << NLinha << endl;
}
int main(){
int n, m;
cout << "Numerador: ";
cin >> n;
cout << "Denominador: ";
cin >> m;
try{ // inicio do bloco TRY
if (m==0){
// lança a exceção, criando um objeto da classe TrataDivZero
// e passando o número da linha onde o erro ocorreu
throw (TrataDivZero(__LINE__));
// dentro deste bloco nada é executado após o throw.
}
cout << "Divisão: " << (double)n/m << endl;
} // final do bloco TRY
catch (TrataDivZero T){ // pode ter ou não o objeto
// apenas o tipo é obrigatório
T.Msg();
}
cout << "Fim..." << endl;
return 0;
}
\ No newline at end of file
#include <iostream>
#include <math.h>
using namespace std;
class TrataDivZero{
private:
int NLinha;
public:
TrataDivZero(int n);
void Msg();
};
TrataDivZero::TrataDivZero(int n){
NLinha = n;
}
void TrataDivZero::Msg(){
cout << "Tratador de erro foi chamado ..." << endl;
cout << "Erro na linha: " << NLinha << endl;
}
int main(){
int n, m;
cout << "Numerador: ";
cin >> n;
cout << "Denominador: ";
cin >> m;
try{
if (m==0){
throw (TrataDivZero(__LINE__));
cout << "Problemas...." ; // esta linha nunca é executada
}
if (m<0){
string temp = "Problema com Raiz Quadrada de número negativo.";
throw (string(temp)); // LANÇA UMA EXCEÇÃO COM UMA string
}
if (n<0){
throw (10); // LANÇA UMA EXCEÇÃO COM UM int
}
cout << "Divisão: " << (double)n/m << endl;
cout << "Raiz Quadrada: " << sqrt(m) << endl;
}
catch (TrataDivZero T){ // pode ter ou não o objeto
// apenas o tipo é obrigatório
T.Msg();
}
catch (string S){ // pode ter ou não o objeto
// apenas o tipo é obrigatório
cout << "Tratador de exceção de string" << endl;
cout << S << endl;
}
catch (...){
cout << "Tratador de exceção GENERICO !!" << endl;
}
cout << "Fim..." << endl;
return 0;
}
\ No newline at end of file
#include <iostream>
#include<exception>
using namespace std;
int main(){
double *ptr;
try{
while (1){
cout << "Tentando Alocar...\n";
ptr = new double[500000];
}
}
catch (bad_alloc E){
cout << "Faltou Memoria...\n" << endl;
} // aqui o objeto T não existe mais !!
for(int i=0; i< 100;i++)
cout << "Fim..." << endl;
return 0;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment