下面我会给您详细讲解“Java异常处理实例教程”的完整攻略。
1. 异常概述
异常是Java中的一种错误,当程序执行过程中出现错误时,会抛出异常。Java提供了一套机制,用于捕捉并处理异常,使得程序出错时不会直接崩溃而是可以做一些处理,增加程序的健壮性和可维护性。
2. 异常分类
Java中的异常可以分为两类:受检异常(Checked Exception)和非受检异常(Unchecked Exception)。其中,受检异常必须在代码中进行捕捉处理,否则代码编译不通过;而非受检异常不要求强制进行异常处理。
常见的非受检异常有NullPointerException、ArrayIndexOutOfBoundsException、RuntimeException等;常见的受检异常有IOException、FileNotFoundException、SQLException等。
3. 异常捕捉处理机制
异常捕捉处理机制由try-catch-finally三个关键字组成。
在代码块中可能会出现异常的语句,被放在try{}块中;如果异常发生,就会跳转到对应的catch{}块进行异常处理。
如果try块中的语句没有抛出异常,则会跳过catch{}块。
无论是否有异常抛出,finally{}块中的语句都会执行,常用于释放资源等操作。
下面是示例代码:
try {
// 可能会抛出异常的代码块
// ...
} catch (Exception e) {
// 异常处理代码
// ...
} finally {
// 无论是否有异常抛出,都会执行的代码块
// ...
}
4. 示例说明
接下来我们看两个具体的例子。
4.1 求一个数的平方
如果输入一个非法字符(例如字母),则会抛出NumberFormatException异常。
import java.util.Scanner;
public class ExceptionDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
String input = scanner.nextLine();
try {
// 将字符串转换为整数
int n = Integer.parseInt(input);
// 求平方
int result = n * n;
System.out.println(n + "的平方为:" + result);
} catch (NumberFormatException e) {
System.out.println("输入的不是一个整数");
} finally {
scanner.close(); // 关闭输入流
}
}
}
4.2 文件读取与关闭
如果文件不存在,则会抛出FileNotFoundException异常。
import java.io.*;
public class FileDemo {
public static void main(String[] args) {
BufferedReader reader = null;
try {
// 打开文件
File file = new File("test.txt");
// 读取文件
reader = new BufferedReader(new FileReader(file));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (FileNotFoundException e) {
System.out.println("文件不存在");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (reader != null) {
reader.close(); // 关闭文件流
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
以上就是关于“Java异常处理实例教程”的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java异常处理实例教程 - Python技术站