Sempre usei o try, catch e finally por que nos sistemas em que trabalhei algumas funções possuíam esses recursos. Hoje pensei em entender melhor porque algumas funções tinham o bloco finally e outras não, sua aula me ajudou a entender o motivo. Muito obrigado!
Também podemos criar uma classe com nossa própria exceção, segue exemplo abaixo: using System; class CustomException : Exception //Aqui criamos nossa classe com a Exceção Personalizada, ela deve ser derivada de Exception ou ApplicationException. { public CustomException(string message) : base(message) { //Quando instanciada, recebe uma mensagem e passa para a classe Base. } } class Area { public static float Quad(float bas, float alt) { if (bas == 0 || alt == 0) { throw new CustomException("Base ou Altura não podem ser iguais a zero!"); //Aqui lançamos nossa Exceção com a mensagem do Erro. } return bas * alt; } } class Aula53 { static void Main() { Console.Write("Digite a base: "); float bas = float.Parse(Console.ReadLine()); Console.Write("Digite a altura: "); float alt = float.Parse(Console.ReadLine()); try { Console.WriteLine("O resultado é: {0}", Area.Quad(bas, alt)); } catch (CustomException e) { Console.WriteLine(" Erro: {0}", e.Message); //Capturamos a Exceção e mostramos a mensagem } } }
Notem que eu coloquei o nome da classe com a Exceção Personalizada como "CustomException", mas foi só por exemplo, vocês podem colocar qualquer nome, mas como boas práticas de programação devemos colocar a palavra "Exception" no final.
Muitos programadores experientes dizem que não utilizam exceções, pois eles, tratam todos os dados de entrada pelo código. O que os senhores acham dessa filosofia.
namespace Aula57 { public class Mouse: IDisposable { private int Botoes; public Mouse(int Botoes) { this.Botoes=Botoes; if(this.Botoes 2) { throw new Exception("Numeros de Botões Ivalido, Impossivel Mouse com mais de 2 Botões"); } } public void Dispose() { GC.SuppressFinalize(this); } } public class Executa { static void Main() { try{ using(Mouse M1 = new Mouse(2)) { Console.WriteLine("Mouse Criado Com Sucesso ! "); } }catch(Exception e) { Console.WriteLine(e); }finally{Console.WriteLine("Bloco Executado");}
Bom, nice ❤
Conteúdo muito interessante.
O finally é executado desde que/se entrar no try.
a vdd não, o finally é executado de qualquer forma
Sempre usei o try, catch e finally por que nos sistemas em que trabalhei algumas funções possuíam esses recursos. Hoje pensei em entender melhor porque algumas funções tinham o bloco finally e outras não, sua aula me ajudou a entender o motivo. Muito obrigado!
Também podemos criar uma classe com nossa própria exceção, segue exemplo abaixo:
using System;
class CustomException : Exception //Aqui criamos nossa classe com a Exceção Personalizada, ela deve ser derivada de Exception ou ApplicationException.
{
public CustomException(string message) : base(message)
{
//Quando instanciada, recebe uma mensagem e passa para a classe Base.
}
}
class Area
{
public static float Quad(float bas, float alt)
{
if (bas == 0 || alt == 0)
{
throw new CustomException("Base ou Altura não podem ser iguais a zero!"); //Aqui lançamos nossa Exceção com a mensagem do Erro.
}
return bas * alt;
}
}
class Aula53
{
static void Main()
{
Console.Write("Digite a base: ");
float bas = float.Parse(Console.ReadLine());
Console.Write("Digite a altura: ");
float alt = float.Parse(Console.ReadLine());
try
{
Console.WriteLine("O resultado é: {0}", Area.Quad(bas, alt));
}
catch (CustomException e)
{
Console.WriteLine("
Erro: {0}", e.Message); //Capturamos a Exceção e mostramos a mensagem
}
}
}
Notem que eu coloquei o nome da classe com a Exceção Personalizada como "CustomException", mas foi só por exemplo, vocês podem colocar qualquer nome, mas como boas práticas de programação devemos colocar a palavra "Exception" no final.
@@henriquefr4543 Obg cara,não sabia que tinha como cria um exceção,ainda bem que eu li seu comentario .
Mestre, bom dia! Excelente aula mais uma vez. Boa semana...
Experimentem assim, caso dê algum erro
Console.WriteLine($"Area do Quadrado.: {area}");
Mais uma aula top , parabéns fessor ! .
visto
Amando tudo e aprendendo bastante!
me ajudou muito obrigado!!
boaa, vlw pelo , esforço, didáctica e paciência.
professor muito bom bem compreendido, sei que o assunto não é matemática mas como informativo não seria área do retângulo?
Obg pelo vídeo ❤️
Muitos programadores experientes dizem que não utilizam exceções, pois eles, tratam todos os dados de entrada pelo código. O que os senhores acham dessa filosofia.
Professor, porque vc coloca {0} dentro na área do Console.WtiteLine? Não entendi essa parte
Douglas para mostrar o resultado da área, esta assim ...:{0}",area); area é a variável.
da pra criar um login e senha com try catch e um if né professor ? ou estou enganado ?
com certeza
excessoes devem ser utilizadas quando se espera inputs vindos de usuários
O finally é uma construção completamente inútil, pois as instruções que fossem colocadas após o catch daria na mesma.
Você tem uma mania bem hipócrita na nomenclatura, que não combina com ser professor de videoaula.
namespace Aula57
{
public class Mouse: IDisposable
{
private int Botoes;
public Mouse(int Botoes)
{
this.Botoes=Botoes;
if(this.Botoes 2)
{
throw new Exception("Numeros de Botões Ivalido, Impossivel Mouse com mais de 2 Botões");
}
}
public void Dispose()
{
GC.SuppressFinalize(this);
}
}
public class Executa
{
static void Main()
{
try{
using(Mouse M1 = new Mouse(2))
{
Console.WriteLine("Mouse Criado Com Sucesso ! ");
}
}catch(Exception e)
{
Console.WriteLine(e);
}finally{Console.WriteLine("Bloco Executado");}
}
}
}