catch 块通常和 try(有时还有 finally)配合使用,用来捕获并处理异常,防止程序因错误直接崩溃。
下面以几种常见语言为例说明。
try {
// 可能抛出异常的代码
int x = 1 / 0;
} catch (Exception e) {
// 异常处理
System.out.println("出错了:" + e.getMessage());
}
try {
// 可能出错的代码
} catch (NullPointerException e) {
// 处理空指针
} catch (IOException e) {
// 处理 IO 异常
} catch (Exception e) {
// 兜底异常
}
⚠️ 子类异常要写在前面,父类异常写在后面
try {
// 执行业务
} catch (Exception e) {
// 出错处理
} finally {
// 无论是否异常都会执行(常用于释放资源)
}
示例(关闭资源):
Connection conn = null;
try {
conn = getConnection();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (conn != null) conn.close();
}
catch (Exception e) {
log.error("处理失败", e);
}
catch (Exception e) {
throw new RuntimeException("业务异常", e);
}
catch (Exception e) {
return Collections.emptyList();
}
try {
JSON.parse("abc");
} catch (e) {
console.log(e.message);
}
ES2019 后可省略参数:
try {
// ...
} catch {
// 不关心错误信息
}
❌ 不要吞掉异常(什么都不做)
catch (Exception e) {
// 空 catch,极其不推荐
}
❌ 不要捕获 Throwable(Java)或过于宽泛的异常
✅ 只捕获你能合理处理的异常
如果你指的是 某种具体语言(Python / C++ / Go) 或 某种场景(异步、事务、Spring),可以告诉我,我可以讲得更针对性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。