Boa tarde, Pessoal! tentei simular o try e catch para o código acima alterando apenas o tipo de dados de int para float. A aplicação não dá mensagem de erro e retorna a mensagem "Divisão de 10 por 0 igual a 8". Claro que isso não faze sentido. Agradeço a ajuda
namespace ByteBank
{
class Program
{
static void Main(string[] args)
{
try
{
Exibir();
}
catch(NullReferenceException erro2)
{
Console.WriteLine(erro2.StackTrace);
Console.WriteLine("Aconteceu um erro!"+ erro2);
}
try
{
Metodo();
}
catch(NullReferenceException erro)
{
Console.WriteLine(erro.StackTrace);
Console.WriteLine("Aconteceu um erro!"+erro);
}
Console.ReadLine();
}
// Teste com a cadeia de chamada:
// Metodo -> TestaDivisao -> Dividir
private static void Metodo()
{
TestaDivisao(0);
}
private static void TestaDivisao(int divisor)
{
try
{
float resultado = Dividir(10, divisor);
Console.WriteLine("Resultado da divisão de 10 por " + divisor + " é " + resultado);
}
catch (DivideByZeroException erro)
{
Console.WriteLine(erro.Message);
// Console.WriteLine(erro.StackTrace);
Console.WriteLine("Não é possível fazer uma divisão por 0!");
}
}
private static int Dividir(int numero, int divisor)
{
// ContaCorrente conta = null;
//Console.WriteLine(conta.Saldo);
return numero / divisor;
}
private static void Exibir ()
{
Mostrar(0);
}
private static void Mostrar(float y)
{
try
{
float result = Quociente(10, y);
Console.WriteLine("Resultado da divisão de 10 por" + " " + y+ " "+"é "+ ""+ result);
}
catch (DivideByZeroException defeito)
{
Console.WriteLine(defeito.StackTrace);
}
}
private static float Quociente(float x, float y)
{
return x / y;
}
}
}
funciona. Provavelmente