gpt4 book ai didi

java - 异常和 SQLException 之间的区别

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:09 26 4
gpt4 key购买 nike

有人能解释一下捕获Exception 和捕获SQLException 之间的区别吗?我知道如果你选择打印出异常错误,SQLException 会打印出更多的信息,但是还有其他的吗?

try {
//code
} catch(Exception ex) {
//code
}

try {
//code
} catch(SQLException ex) {
//code
}

在catch block 中使用ExceptionSQLException有什么好处和区别?

最佳答案

这不是唯一的区别。

捕获 Exception 是危险的,因为它也会捕获所有 RuntimeException s(因此是未经检查的异常),并且包括诸如 NullPointerException 等细节,这些都是明显的程序员错误。 不要那样做!

此外,Exception 是一个与其他任何类一样的类,因此您可以将其子类化并添加您的构造函数/方法。例如,SQLException 有一个 .getErrorCode() method Exception 没有。如果您只捕获 Exception,则无法访问此方法。

一般来说,先捕获“更精确”的异常是最好的。例如,使用新的(在 Java 7 中...)文件 API,您可以轻松区分文件系统级错误和其他 I/O 错误,因为 FileSystemException 扩展了 IOException :

try {
something();
} catch (FileSystemException e) {
// fs level error
} catch (IOException e) {
// I/O error
}

关于java - 异常和 SQLException 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com