已检查和未检查的例外

Anonim

Java中的异常处理是处理运行时代码序列中出现的特定错误的强大机制之一。异常只是一个运行时错误,它会破坏应用程序的正常流程。

它通常出现在一段代码中,当它出现时,会创建一个表示该异常的对象 抛出 在引起它的方法中。结果,程序或应用程序中断导致应用程序异常终止,这是不推荐的。这就是为什么要处理这些异常的原因,这就是异常处理机制出现的原因。

Java中存在两种类型的异常 - Checked和Unchecked Exception。在本文中,我们将详细讨论检查和未检查的异常以及何时使用它们,最后,我们将看到两者之间的区别。

什么是Java中的Checked Exception?

这些是在编译时检查和处理的异常。 Java在标准包中定义了几个异常类 java.lang中,最常见的例外是标准类型的子类 RuntimeException的.

在程序直接控制之外的区域中发生的那些异常称为已检查异常。如果一个方法 在编译时检查的异常无法自己处理它,那么它必须处理一个异常 抓住{} 使用。阻止或声明异常 关键字,否则会产生编译错误。编译器检查每个异常对象的类型 如果显示已检查,则编译器会检查源代码,以确保在抛出或声明异常的方法中处理异常,以便可以进一步处理。

描述的所有例外 例外 这是它的直接子类,除了 RuntimeException的 称为检查异常。现在什么时候使用检查异常?当您确切地知道要做什么时,您可以选择使用已检查的例外 例外 发生或失败的可能性更大。 Java库中已检查异常的一些示例包括IOException,DataAccessException,IllegalAccessException,InterruptedException,ClassNotFoundException,InvocationTargetException等。

什么是Java中未经检查的异常?

这些是在编译时未检查的异常。未经检查的异常表示通常反映程序逻辑中的错误并且无法在运行时恢复的条件。

简单来说,未经检查的异常是一个未被捕获的异常 试着抓 块。它们不需要被明确捕获。实际上,当发生未经检查的异常时,Java会自动处理异常。未经检查的异常主要是由于编程错误而发生的,例如访问数组绑定之外的元素或访问空对象的方法时。在Java中,throwable下的所有异常都是经过检查的异常,而异常则是直接的子类 错误RuntimeException的 是未经检查的例外情况。

未经检查的异常的最佳部分是它在保持客户端代码清洁的同时不会降低代码可读性。未经检查的异常的一些示例包括ArithmeticException,ClassCastException,NullPointerException,ArrayIndexOutOfBound,IllegalArgumentException,IllegalStateException,ArrayStoreException,SecurityException等。

Checked和Unchecked异常之间的区别

已检查和未检查的异常的定义

Checked和Unchecked Exception是Java中存在的两种类型的异常,用于确保应用程序的正常流动。两者都用于处理Java中的异常的目的,虽然功能上没有区别,但没有单一规则来确定何时使用checked和何时使用未经检查的异常。 Checked Exception是在编译时检查的异常,而Unchecked Exception是在编译时未检查的异常。

已检查和未检查异常的基础知识

已检查的异常是指在程序的即时控制之外发生的无效方案,而未经检查的异常是指程序中的错误或程序逻辑中无法在运行时恢复的错误。

异常处理

如果方法抛出已检查的异常,编译器将使用try-catch块检查方法是否正在处理该异常,或使用throws关键字指定异常。如果方法不提供处理代码,则会显示编译错误。相反,程序编译得很好,因为编译器在编译时不检查未经检查的异常。

检查和未检查异常的原因

通常会处理不是从RunTimeException派生的异常,而在运行时发生的异常很少被处理。当失败的可能性太高时,会发生检查异常。另一方面,未经检查的异常主要是由于编程错误。 RuntimeException和Error类下的所有异常都是未经检查的异常,而throwable下的所有其他异常都是已检查的异常。

已检查和未检查的异常示例

已检查异常的一些示例包括IOException,DataAccessException,IllegalAccessException,InterruptedException,ClassNotFoundException等。未经检查的异常的示例包括NullPointerException,ArithmeticException,ArrayIndexOutOfBound,IllegalArgumentException,IllegalStateException,ArrayStoreException,SecurityException等。

已检查与未检查的异常:比较图表

已检查和未检查的异常摘要

Checked和Unchecked Exception是Java中存在的两种类型的异常。虽然两种例外的功能相同,但它们有相同的差异。已检查和未检查的异常之间的主要区别在于前者由编译器检查,而后者则忽略了编译器的通知。在编译时检查和处理的异常是已检查的异常,而在编译时未检查和处理的异常是未经检查的异常。本文解释了检查的内容和未检查的异常,何时使用它们,并解释了两者之间的区别。