Notas do estudo sobre Java: Mecanismo de exceção do Java

Notas do estudo sobre Java: Mecanismo de exceção do Java

Dois métodos de processamento:

  • try-catch
  • lança
    lança exceção gerada deve ser uma subclasse de throwable

declaração try-catch

try
{
    语句1//如果语句1有异常,则语句2不会执行,直接到catch
    语句2//放入可能异常的句子
}
catch(Exception e)   //catch (错误类型 + 对象),                  
{                    //错误类型一般写Exception就可以了,因为Exception是其他错误类型的父类
    //处理或者提醒用户的句子
}
//可以捕捉多个异常
catch(异常类型1 e)    
{
    //...
}
catch(异常类型2 e)
{
    //...
}
...
finally
{
    //无论是否捕捉到,都一定会执行的代码
    //一般用于关闭文件,删除临时文件等资源的清理工作
}

No programa acima, apenas uma captura é executada ou nenhuma das capturas () {} é executada
. Não pode haver código entre captura e captura.

  • Assuntos que precisam de atenção
    Primeiro, pegue a exceção da subclasse, depois a exceção da classe pai, caso contrário, compile o erro, porque a exceção da classe pai inclui todas as exceções da subclasse.
class A extends Exception {
}

class B extends A {
}

class C extends B {
}

class M {
    public void compare(int i, int j) throws A, B {
        if (i > j)
            throw new A();
        else
            throw new B();
    }
}

public class TestTryCatch {
    public static void main(String[] args) {
        M mm = new M();
        try {
            mm.compare(-4, 1);
        } catch (B bb) {
            System.out.println("左边不能小于右边");
        } catch (A aa) {
            System.out.println("左边不能大于右边");
        }

    }
}

Quando a subclasse substitui o método da classe base, o escopo da exceção lançada pelo
método da subclasse não pode ser maior que o escopo da exceção lançada pelo método da classe base Não é possível lançar exceções que não sejam métodos de classe base

//自定义异常A
class A extends Exception
{
}

//自定义异常B
class B extends Exception
{
}

//自定义异常C
class C extends Exception
{
}

class M
{
    void f() throws A, B
    {
    }
}

class N extends M
{
 //可以throws A或B,也可以throws A,B  也可以不throws,
 //但不可以throws C  即"子类覆盖了基类方法时,
 //子类方法抛出异常的范围不能大于基类方法抛出的异常范围"
    void f() throws A,B 
    {
    }
}

class Test
{
    public static void main(String[] args)
    {
        M m = new M();
        N n = new N();

        System.out.println("1111");
    }
}
  • Resumo do manipulador anormal

    1. Quando ocorre um erro em um programa Java, o sistema detecta automaticamente o erro e gera imediatamente um objeto de exceção correspondente ao erro.
    2. Em seguida, forneça o objeto de exceção à JVM.
    3. A JVM encontrará primeiro o código correspondente para manipular a exceção.Se não for encontrado, a JVM fará algum processamento simples e o programa será encerrado à força.
    4. Os programadores podem escrever seu próprio código para capturar e manipular as exceções correspondentes.

  • Suplemento:

try
{
    //...
}
catch(Exception e)
{
    e.printStackTrace();
}
printStackTrace

Imprima as informações de erro e o caminho do objeto de erro e na pilha (ou seja, imprima as informações de erro)

Sim
Publicado 7 artigos originais · Gosto 8 · Visitas 133

Acho que você gosta

Origin blog.csdn.net/weixin_44983848/article/details/105508407
Recomendado
Clasificación