欢迎访问宙启技术站
智能推送

Java中如何使用异常处理语句?

发布时间:2023-06-02 12:25:27

异常处理语句用于在程序运行过程中发生异常时捕获并处理异常,以确保程序正常结束。Java中的异常处理语句包括try-catch语句和throw语句。

一、try-catch语句

try-catch语句用于捕获并处理运行时异常(RuntimeException)和非运行时异常(Exception)。语法如下:

try {
    // 可能会抛出异常的代码块
} catch (异常类型1 异常变量1) {
    // 异常类型1的处理方法
} catch (异常类型2 异常变量2) {
    // 异常类型2的处理方法
} finally {
    // 可选的代码块,不管有没有异常都会执行
}

try语句块中的代码可能会抛出异常,catch语句块中的异常类型1和异常类型2分别捕获try语句块中可能抛出的异常。可以有多个catch语句块捕获不同类型的异常。finally语句块可选,它包含的代码不管有没有异常都会执行。

例如:

try {
    int a = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("捕获异常:" + e.getMessage());
} finally {
    System.out.println("finally语句块执行");
}

上面的代码中,try语句块中的代码会抛出ArithmeticException异常,catch语句块捕获这个异常,并输出异常信息。finally语句块中的代码无论是否有异常都会执行,输出finally语句块执行。

二、throw语句

throw语句用于手动抛出异常。语法如下:

throw new 异常类型("异常信息");

throw语句后面跟的是一个new表达式,创建了一个异常对象,并抛出这个异常。异常类型可以是自定义的异常类,也可以是Java中预定义的异常类。异常信息是一个字符串,描述了异常的相关信息。

例如:

public void divide(int a, int b) throws ArithmeticException {
    if (b == 0) {
        throw new ArithmeticException("除数不能为零");
    } else {
        int c = a / b;
        System.out.println(a + " / " + b + " = " + c);
    }
}

上面的代码中,如果除数为零,则手动抛出一个ArithmeticException异常,异常信息为“除数不能为零”。如果除数不为零则正常执行除法运算,并输出结果。

三、自定义异常

在Java中可以通过继承Exception类或RuntimeException类来创建自定义的异常类。通常自定义的异常类会包含异常信息和异常代码两个属性,以及构造方法和toString()方法。

例如:

public class MyException extends Exception {
    private String message;
    private int code;

    public MyException(String message, int code) {
        this.message = message;
        this.code = code;
    }

    @Override
    public String toString() {
        return "MyException{" +
                "message='" + message + '\'' +
                ", code=" + code +
                '}';
    }
}

上面的代码中,MyException类继承了Exception类,并添加了message和code两个属性。构造方法用于初始化这两个属性,toString()方法用于返回异常信息和异常代码的字符串表示形式。

使用自定义异常时,可以在方法声明中使用throws关键字声明可能会抛出的异常类型。

例如:

public void login(String username, String password) throws MyException {
    if (!"admin".equals(username)) {
        throw new MyException("用户名错误", 1001);
    } else if (!"123456".equals(password)) {
        throw new MyException("密码错误", 1002);
    } else {
        System.out.println("登录成功");
    }
}

上面的代码中,如果用户名不是“admin”或者密码不是“123456”,则手动抛出一个MyException异常,异常信息和异常代码分别为“用户名错误”和1001,或者“密码错误”和1002。如果用户名和密码都正确,则输出“登录成功”。

总之,异常处理语句在Java中非常重要,它可以帮助我们在程序运行过程中捕获并处理异常,保证程序正常结束,避免出现代码运行异常的情况。