Resumo : neste tutorial, você aprenderá como usar a throw
palavra-chave C# para gerar uma exceção em seu aplicativo.
Introdução à palavra-chave throw C#
A throw
palavra-chave permite gerar uma exceção. Aqui está a sintaxe de como usar a throw
palavra-chave:
throw exception;
Linguagem de código: C# ( cs )
Nesta sintaxe, the exception
é um objeto que representa a exceção que você deseja gerar. Você pode usar qualquer classe de exceção interna derivada da System.Exception
classe. Além disso, você pode gerar uma exceção personalizada , que será abordada no próximo tutorial.
Normalmente, você usa a throw
palavra-chave com uma if
instrução para lançar uma exceção quando uma determinada condição for atendida:
if (condition)
{
throw exception;
}
Linguagem de código: C# ( cs )
Usando a palavra-chave throw C# para gerar um exemplo de exceção
O programa a seguir demonstra como usar a throw
palavra-chave para lançar uma ArgumentOutOfRangeException
exceção:
using static System.Console;
public class Circle
{
public double Radius
{
get; set;
}
public Circle(double radius)
{
if (radius <= 0)
{
throw new ArgumentOutOfRangeException(
nameof(radius),
"The radius should be positive"
);
}
Radius = radius;
}
public double GetArea() => Math.PI * Radius * Radius;
}
class Program
{
public static void Main(string[] args)
{
WriteLine("Enter a radius:");
var input = ReadLine();
if (input != null)
{
var radius = double.Parse(input);
try
{
var circle = new Circle(radius);
WriteLine($"The area is {circle.GetArea():F2}");
}
catch (ArgumentOutOfRangeException ex)
{
WriteLine(ex.Message);
}
}
}
}
Linguagem de código: C# ( cs )
Como funciona.
Primeiro, defina uma classe chamada Circle
que represente um círculo com um determinado raio.
Na Circle
classe, definimos um construtor que assume um double
valor que representa o raio do círculo. Se o valor do raio for menor ou igual a zero, lançamos um ArgumentOutOfRangeException
com uma mensagem de erro personalizada usando a throw
palavra-chave.
Na Circle
aula também definimos um método GetArea()
que retorna a área do círculo usando a fórmula πr².
Segundo, peça ao usuário para inserir um raio no Main
método do programa.
O Main()
método:
- Lê a entrada do console
- Analisa-o para um
double
- Cria uma instância da
Circle
classe com o valor do raio inserido - Chama o
GetArea()
método para calcular a área do círculo.
Se o raio inserido não for positivo, o Main
método captura a ArgumentOutOfRangeException
exceção levantada pelo construtor e exibe a mensagem de erro no console.
A expressão de lançamento
A partir do C# 7.0, você pode usar a throw
palavra-chave como uma expressão. Isso permite lançar uma exceção in-line, sem precisar definir uma variável separada. A sintaxe da throw
expressão é a seguinte:
throw expression;
Linguagem de código: JavaScript ( javascript )
Nesta sintaxe, o expression
é avaliado como um objeto derivado da System.Exception
classe. Por exemplo, você pode alterar o Circle
construtor do exemplo anterior para o seguinte:
public Circle(double radius)
{
Radius = radius > 0
? radius
: throw new ArgumentOutOfRangeException(
nameof(radius),
"The radius should be positive"
);
}
Linguagem de código: C# ( cs )
Neste exemplo, se radius
for maior que zero, atribuímos-o à Radius
propriedade. Caso contrário, lançamos a ArgumentOutOfRangeException
exceção. Isso tem o mesmo efeito do exemplo anterior, mas é mais conciso.
Resumo
- Use a
throw
palavra-chave C# para gerar uma exceção explicitamente.