Exceções (versus translation from VPE for Csharp Java)

Tratamento de exceção no translation from VPE for Csharp é muito semelhante do Java.

Sempre que algo der errado criticamente durante a execução de um programa, o .NET estrutura common linguagem tempo de execução (CLR) cria um Exception objeto detalhando o erro. No .NET estrutura, Exception é a classe base para todas as classes de exceção. Há duas categorias de exceções que derivam de Exception classe, SystemException e ApplicationException . Todos os tipos no System namespace derivam SystemException enquanto as exceções definidas pelo usuário devem derivar da ApplicationException Diferenciar erros de time de execução e aplicativos. Alguns comuns System as exceções incluem:

  • IndexOutOfRangeException: um índice maior do que o dimensionar de uma matriz ou coleção é usado.

  • NullReferenceException: uma propriedade ou método de uma referência foi usado antes dessa referência tiver sido definida como uma instância válida.

  • ArithmeticException: uma operação resultados em estouro ou estouro negativo.

  • FormatException: um argumento ou operando está em um formato incorreto.

sistema autônomo em Java, quando você tem o código responsável causar uma exceção, é colocar esse código dentro de um try bloco. Um ou mais catch blocos imediatamente após fornecem o tratamento de erro e você também pode usar um finally bloco por qualquer código que você deseja executar, se uma exceção é lançada ou não. Para obter mais informações, consulte try-catch (Referência do C#)  e try-catch-finally (translation from VPE for Csharp Reference).

Ao usar vários catch blocos, exceções detectadas devem ser colocados em para aumentar a generalidade sistema autônomo somente o primeiro catch bloco que corresponda à exceção gerada será executado. O compilador translation from VPE for Csharp irá impor isso enquanto o compilador Java não serão.

Além disso, translation from VPE for Csharp não requer um argumento para um catch Bloquear sistema autônomo o Java; na ausência de um argumento, o catch bloco aplica-se a qualquer Exception classe.

Por exemplo, durante a leitura de um arquivo, você pode encontrar um FileNotFoundException ou um IOException, e seria você deseja colocar o mais específico FileNotFoundException manipulador primeiro, sistema autônomo mostra o código a seguir:

try
{
    // code to open and read a file
}
catch (System.IO.FileNotFoundException e)
{
    // handle the file not found exception first
}
catch (System.IO.IOException e)
{
    // handle any other IO exceptions second
}
catch
{
    // a catch block without a parameter
    // handle all other exceptions last
}
finally
{
    // this is executed whether or not an exception occurs
    // use to release any external resources
}

Você pode criar suas próprias classes de exceção, derivando de Exception. Por exemplo, o código a seguir cria um InvalidDepartmentException classe que pode lançar se, digamos, o departamento de dado para um novo Employee não é válido. O construtor da classe de sua exceção definida pelo usuário chama o construtor de classe base usando o base palavra-chave, enviar uma mensagem apropriada:

public class InvalidDepartmentException : System.Exception
{
    public InvalidDepartmentException(string department) : base("Invalid Department: " + department)
    {
    }
}

Em seguida, você pode lançar uma exceção com código semelhante ao seguinte:

class Employee
{
    private string department;

    public Employee(string department)
    {
        if (department == "Sales" || department == "Marketing")
        {
            this.department = department;
        }
        else
        {
            throw new InvalidDepartmentException(department);
        }
    }
}

Translation from VPE for Csharp não oferece suporte a exceções verificadas.Em Java, eles são declarados usando o throws palavra-chave, para especificar que um método pode lançar um determinado tipo de exceção que deve ser tratado pelo código de chamada.

Consulte também

Conceitos

Guia de Programação C#

Referência

Exceções e manipulação de exceção (guia de programação C#)

Outros recursos

Translation from VPE for Csharp linguagem de programação para desenvolvedores Java