在 Java 中,“捕获异常”通常指的是使用 try-catch 机制处理异常,防止程序因异常而直接崩溃。下面从基础到常见用法给你讲清楚。
try {
int a = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("发生算术异常:" + e.getMessage());
}
✅ 说明:
try:可能抛出异常的代码catch:捕获并处理指定类型的异常try {
// 可能抛出多种异常
} catch (NullPointerException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
try {
// 代码
} catch (NullPointerException | IllegalArgumentException e) {
e.printStackTrace();
}
try {
System.out.println("执行代码");
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("一定会执行(常用于释放资源)");
}
✅ 常见用途:
自动关闭资源,避免忘记 finally 关闭:
try (FileInputStream fis = new FileInputStream("test.txt")) {
int data = fis.read();
} catch (IOException e) {
e.printStackTrace();
}
✅ 要求:
AutoCloseable 接口try {
// 代码
} catch (Exception e) {
e.printStackTrace();
}
⚠ 注意:
catch (Exception e) {} 空处理public void readFile() throws IOException {
// 可能抛出异常
}
调用方必须:
throwstry-catchclass MyException extends Exception {
public MyException(String msg) {
super(msg);
}
}
try {
throw new MyException("自定义错误");
} catch (MyException e) {
System.out.println(e.getMessage());
}
try {
// 代码
} catch (Exception e) {
// 什么都不做(吞异常)
}
✅ 正确做法:
Java 捕获异常 = try 包代码 + catch 抓异常 + finally 做清理
如果你愿意,可以告诉我:
我可以给你更针对性的例子。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。