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。

我们将看到一些检查异常的示例,如下所示,

  1. IOException

  2. SQLException

  3. 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。

我们将看到一些未检查的异常示例,如下所示,

  1. ArrayIndexOutofBoundsException

  2. 空指针异常

  3. 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 zero

at UnCheckedException.main(UnCheckedException.java:9)

以上是 Java中检查和未检查异常之间的区别 的全部内容, 来源链接: utcz.com/z/352411.html

回到顶部