Java中如何使用异常处理语句?
异常处理语句用于在程序运行过程中发生异常时捕获并处理异常,以确保程序正常结束。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中非常重要,它可以帮助我们在程序运行过程中捕获并处理异常,保证程序正常结束,避免出现代码运行异常的情况。
