Java中异常分为Checked Exception和Unchecked Exception,区别在于编译器是否强制处理;2. 所有异常继承自Throwable,Exception的子类非RuntimeException的为Checked Exception,RuntimeException及其子类、Error及其子类为Unchecked Exception;3. Checked Exception必须try-catch或throws声明,否则编译失败,而Unchecked Exception无此要求;4. 常见Checked Exception有IOException、SQLException等,常见Unchecked Exception有NullPointerException、IllegalArgumentException及OutOfMemoryError等;5. 实际开发中Checked用于可恢复的外部问题,Unchecked多用于程序逻辑错误。
在Java中,异常分为两大类:Checked Exception(已检查异常)和 Unchecked Exception(未检查异常)。它们的核心区别在于编译器是否强制要求处理或声明。理解这种区分对编写健壮的代码非常重要。
Java中的所有异常都继承自 Throwable 类。其两个主要子类是 Exception 和 Error。
关键点:简单来说:
编译器会对 Checked Exception 进行强制检查。
而 Unchecked Exception 不受此限制,可以不捕获也不声明,编译照样通过。
示例:
// IOException 是 Checked Exception
FileInputStream fis = new FileInputStream("file.txt"); // 必须 try-catch 或 throws
// IllegalArgumentException 是 Unchecked Exception
throw new IllegalArgumentException("参数错误"); // 可以不处理
了解常见异常属于哪一类有助于快速判断。
基本上就这些。记住:看继承链,再看编译器是否强制处理,就能清楚区分。实际开发中,Checked 异常适合用于可恢复的、外部因素导致的问题;Unchecked 异常多用于程序逻辑错误。