Java中如何使用异常处理函数以及示例
Java中异常处理是指在编写程序时,处理程序运行期出现的各种异常。Java中使用异常处理可以使程序更加健壮和安全,避免因为一些异常情况导致程序崩溃。Java提供了Exception(异常)类和try-catch语句,可以进行异常捕获和处理。
1. try-catch语句
try-catch语句的格式如下:
try {
// 可能出现异常的代码
}
catch(ExceptionType1 exception1) {
// 处理异常1
}
catch(ExceptionType2 exception2) {
// 处理异常2
}
finally {
// 一定会执行的语句
}
try块中的语句可能会发生异常,当try块中的语句出现异常时,程序会自动跳转到相应的catch块中进行处理。如果有多个异常,则使用多个catch块分别处理。catch块中的参数是相应类型的异常对象,可以使用该对象进行异常信息的获取和处理。finally块中的语句一定会执行,通常用于进行一些清理工作,例如关闭文件、关闭数据库连接等。
示例代码如下:
import java.io.*;
public class ExceptionDemo {
public static void main(String[] args) {
try {
File file = new File("test.txt");
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
catch (FileNotFoundException e) {
System.out.println("文件不存在!");
}
catch (IOException e) {
System.out.println("文件读取失败!");
}
finally {
System.out.println("文件读取结束!");
}
}
}
上述示例代码中,程序读取一个文件,并输出文件中的内容。如果文件不存在,程序会在catch块中捕获FileNotFoundException异常,并输出“文件不存在!”;如果文件读取失败,程序会在catch块中捕获IOException异常,并输出“文件读取失败!”;无论是否出现异常,程序都会在finally块中执行语句“文件读取结束!”。
2. throws关键字
如果一个方法可能会抛出异常,可以在方法声明中使用throws关键字声明该异常。使用该方法的调用者必须对该异常进行处理,否则编译会报错。
示例代码如下:
public static void readFile() throws IOException, FileNotFoundException {
// 可能会抛出IOException或FileNotFoundException异常
File file = new File("test.txt");
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
上述示例代码中,readFile()方法可能会抛出IOException或FileNotFoundException异常,可以使用throws关键字进行声明。如果该方法被调用,则必须对这两种异常进行处理。
3. throw关键字
在程序中可以使用throw关键字抛出一个异常。使用throw关键字抛出的异常可以是系统自带的异常类,也可以是自定义的异常类。
示例代码如下:
public static int divide(int a, int b) throws ArithmeticException {
if (b == 0) {
throw new ArithmeticException("除数不能为0!");
}
else {
return a / b;
}
}
上述示例代码中,divide()方法接收两个整数a和b,如果b等于0则会抛出一个ArithmeticException异常,否则会返回a除以b的结果。如果调用该方法时,传入的参数b为0,则会抛出一个“除数不能为0!”的异常。
