Java中的异常处理

本文概述

  • Java中的异常是什么
  • 什么是异常处理
  • Java异常类的层次结构
  • 已检查和未检查的异常之间的区别
  • Java异常关键字
  • Java异常处理示例
  • Java异常的常见方案
  • Java异常索引
Java中的异常处理是处理运行时错误的强大机制之一, 因此可以维护应用程序的正常流程。
在此页面中, 我们将学习Java异常, 其类型以及已检查和未检查的异常之间的区别。
Java中的异常是什么 词典的含义:异常是一种异常情况。
在Java中, 异常是指破坏程序正常流程的事件。它是在运行时引发的对象。
什么是异常处理 异常处理是一种用于处理运行时错误的机制, 例如ClassNotFoundException, IOException, SQLException, RemoteException等。
异常处理的优势
异常处理的核心优势是保持应用程序的正常流程。异常通常会中断应用程序的正常流程, 这就是我们使用异常处理的原因。让我们来一个场景:
statement 1; statement 2; statement 3; statement 4; statement 5; //exception occurs statement 6; statement 7; statement 8; statement 9; statement 10;

假设你的程序中有10条语句, 并且在语句5处发生异常, 则其余代码将不会执行, 即语句6至10将不会执行。如果我们执行异常处理, 则语句的其余部分将被执行。这就是为什么我们在Java中使用异常处理。
你知道吗?
Java异常类的层次结构 java.lang.Throwable类是Java异常层次结构的根类, 它由两个子类继承:异常和错误。 Java异常类的层次结构如下:
Java中的异常处理

文章图片
Java异常类型
主要有两种类型的异常:选中和未选中。在这里, 错误被视为未检查的异常。根据Oracle, 有三种类型的异常:
  1. 检查异常
  2. 未经检查的异常
  3. 错误
Java中的异常处理

文章图片
已检查和未检查的异常之间的区别 1)检查异常
除了RuntimeException和Error外, 直接继承Throwable类的类称为检查异常, 例如IOException, SQLException等。检查的异常在编译时检查。
2)未检查的异常
继承RuntimeException的类称为未检查的异常, 例如ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException等。未经检查的异常不在编译时检查, 但在运行时检查。
3)错误
错误是无法恢复的, 例如OutOfMemoryError, VirtualMachineError, AssertionError等。
Java异常关键字 Java中有5个关键字用于处理异常。
关键词 描述
try “ try”关键字用于指定应在其中放置异常代码的块。在try块之后必须是catch或finally。这意味着, 我们不能单独使用try块。
catch “ catch”块用于处理异常。它必须在try块之前, 这意味着我们不能单独使用catch块。之后可以稍后再进行阻止。
finally “最终”块用于执行程序的重要代码。无论是否处理异常都将执行。
throw “ throw”关键字用于引发异常。
throws “ throws”关键字用于声明异常。它不会引发异常。它指定方法中可能发生异常。它始终与方法签名一起使用。
Java异常处理示例 让我们看一个Java异常处理的例子, 在这里我们使用try-catch语句来处理异常。
public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=http://www.srcmini.com/100/0; }catch(ArithmeticException e){System.out.println(e); } //rest code of the program System.out.println("rest of the code..."); } }

立即测试
输出:
Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code...

在上面的示例中, 100/0引发ArithmeticException, 该异常由try-catch块处理。
Java异常的常见方案 在某些情况下, 可能会发生未经检查的异常。它们如下:
1)发生ArithmeticException的情况
如果将任何数字除以零, 则会发生ArithmeticException。
int a=50/0; //ArithmeticException

2)发生NullPointerException的情况
如果我们在任何变量中都有一个null值, 则对该变量执行任何操作都会引发NullPointerException。
String s=null; System.out.println(s.length()); //NullPointerException

3)发生NumberFormatException的情况
任何值的格式错误都可能发生NumberFormatException。假设我有一个包含字符的字符串变量, 将此变量转换为数字将发生NumberFormatException。
String s="abc"; int i=Integer.parseInt(s); //NumberFormatException

4)发生ArrayIndexOutOfBoundsException的情况
【Java中的异常处理】如果在错误的索引中插入任何值, 则将导致ArrayIndexOutOfBoundsException, 如下所示:
int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException

Java异常索引
  1. Java Try-Catch块
  2. Java多重捕获块
  3. Java嵌套尝试
  4. Java的最终块
  5. Java投掷关键字
  6. Java异常传播
  7. Java抛出关键字
  8. Java投掷vs投掷
  9. Java Final vs Final vs Finalize
  10. 具有方法覆盖的Java异常处理
  11. Java自定义异常

    推荐阅读