淘先锋技术网

首页 1 2 3 4 5 6 7

Java中的异常处理是非常重要的,它可以让程序在发生错误时有一个可控的流程,从而让程序更加健壮。Java中的异常可以分为两种,一种是运行时异常,另一种是非运行时异常。运行时异常是指程序运行时抛出的异常,比如数组下标越界、空指针引用等,这些异常在程序运行时可能会出现,需要程序员使用try-catch语句进行捕捉。非运行时异常是指程序编译时就已经确定的异常,比如文件不存在、网络中断等,这些异常需要使用throws或throw语句进行抛出,由调用者进行处理。

public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
public class Test {
public static void main(String[] args) {
try {
throw new MyException("发生了自定义异常!");
} catch (MyException e) {
System.out.println(e.getMessage());
}
}
}

上面的代码演示了自定义一个异常类MyException,并在main函数中抛出并捕捉自定义异常。抛出异常时使用throw语句,捕捉异常时使用try-catch语句。catch语句中括号中的类型表示捕捉哪种类型的异常,如果捕捉到这种类型的异常,则执行catch块中的代码。如果不捕捉异常,则这个异常将会被传递到上一层级的方法或主函数中。

在Java中,还有一个finally语句用于定义无论是否发生异常都要执行的代码,比如资源释放。finally块内的代码会在try或catch块中的代码执行完毕后执行。

public class Test {
public static void main(String[] args) {
try {
int num = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("发生了被0除的异常!");
} finally {
System.out.println("finally语句块!");
}
}
}

上面的代码演示了使用try-catch-finally语句块处理异常。如果没有try语句块,finally块也会被执行,如果有try语句块,finally块会在try块或catch块中代码执行完毕后执行。finally块可以用于释放资源,比如关闭文件、数据库连接等。