Java中检查和未检查异常之间的区别
已检查与未检查异常
在这里,我们将看到Checked Exception与UnChecked Exception有何不同?
检查异常
Checked Exceptions是在编译期间将检查的异常。
Checked Exception是所有需要try-catch块处理或在编译期间抛出关键字以指定Exception的异常。
对于Checked Exceptions,如果编译器未找到try-catch块处理,则编译器不会引发任何编译错误,但是将不会报告异常,并且要解决此问题,我们需要使用try-catch或throws。
我们将看到哪些预定义的异常是Checked Exceptions(即Checked Exceptions是所有直接属于Exception类的子类的异常,但是我们需要记住,子类不能从RuntimeException继承[ie Exception的任何子类都不能是RuntimeException的子类])。
所有与文件相关的输入/输出异常都在“ I / O异常”下,该异常将被称为“检查异常”。
当操作期间代码失败的机会更高时,我们应该选择Checked Exception。
我们将看到一些检查异常的示例,如下所示,
IOException
SQLException
ClassNotFoundException等
示例
//Java程序演示的例子//检查异常
public class CheckedException {
public static void main(String[] args) throws Exception {
System.out.println("Exception will raise during compile-time");
}
}
注意:要使用其他名称保存Java文件并以类名称运行
输出结果
Main.java:4: error: class CheckedException is public,should be declared in a file named CheckedException.java
public class CheckedException {
^
1 error
在这里,我们将看到UnChecked Exception与Checked Exception有何不同?
未经检查的异常
未检查的异常是在编译期间不会被检查的异常。
未检查的异常是所有不需要try-catch块处理或在编译期间抛出的异常。
对于UnChecked异常,如果编译器未找到try-catch块处理,则编译器将不会引发编译错误。
我们将看到哪些预定义的异常是未检查的异常(即,所有未检查的异常都是直接作为RuntimeException类的子类的那些异常,即我们需要记住该子类必须继承RuntimeException [即,RuntimeException的每个子类都是UnChecked Exception]) 。
未检查的异常通常是由于编程错误或语法或逻辑错误而发生的,这些错误将由程序员来完成。
当语法错误导致编程错误失败的机会更高,尝试访问空对象,传递非法参数,访问数组边界之外的元素等逻辑时,我们应该选择UnChecked Exception。
我们将看到一些未检查的异常示例,如下所示,
ArrayIndexOutofBoundsException
空指针异常
IllegalArgumentException等
示例
//Java程序演示示例//未检查的异常
public class UnCheckedException {
public static void main(String[] args) {
int a = 10;
int b = 0;
int c = a / b;
System.out.println("The value of c is :" + c);
}
}
输出结果
Exception in thread "main" java.lang.ArithmeticException: / by zeroat UnCheckedException.main(UnCheckedException.java:9)
以上是 Java中检查和未检查异常之间的区别 的全部内容, 来源链接: utcz.com/z/352411.html