Java中Checked Exception和Unchecked Exception有什么区别?

Java中Checked Exception和Unchecked Exception有什么区别?

javaexceptionchecked exceptionruntime exception
1
229
小课
小课2022-05-12 18:02
1 个回答
Checked Exception

必须要使用try...catch处理异常或throws将其向上抛出,否则编译不通过,比如FileNotFoundException。使用它的好处是可以确保使用者处理这种异常,但是缺点是比较比较繁琐,很多开发者只是catch了异常,并没有做实质处理。

Unchecked Exception

不强制处理或抛出,Unchecked Exception都是继承自RuntimeException,比如NullPointerException。它的好处是可以让代码更加简洁,但是缺点是这种异常容易忘记处理。

总结

推荐在大部分情况下使用Unchecked Exception,但是要在文档或注释中对异常做出说明,这样使用的人可以自己根据情况处理异常,而非强制性处理。

public class ArgumentException extends RuntimeException { ... }

/**
 * @throws ArgumentException ...
 */
public void login(String username, String password) {
    if (username == null || password == null) {
        throw new ArgumentException("Username or Password is null");
    }
}
1
已修改
小课
小课2022-05-12 18:19
你的回答

内容