📜  Java-异常(1)

📅  最后修改于: 2023-12-03 15:31:34.669000             🧑  作者: Mango

Java异常

在 Java 程序中,当程序执行时遇到一个错误或者其他异常情况时,系统会自动抛出一个异常对象。如果不对这些异常进行处理,程序将会终止执行并弹出错误信息。

Java 提供了一套异常处理机制,便于处理这些异常情况。本文将会介绍 Java 中异常的概念、异常处理机制、异常的分类以及如何自定义异常。

异常的概念

在 Java 程序中,异常是指程序在运行过程中遇到的错误或其他异常情况。这些异常情况包括但不限于:数组越界、空指针、除零等。

Java 中的异常体系是通过类继承机制设计而成的。所有的异常类都是从顶层的 Throwable 类继承而来,Throwable 有两个直接的子类:Exception 和 Error,分别代表着可检查异常和不可检查异常。

下面我们分别介绍这两类异常。

可检查异常

可检查异常是指在程序运行时可能出现的一些正常情况,例如读取一个不存在的文件、输入格式错误等。

这些异常可以被程序捕获并进行处理。如果程序没有对这些异常进行处理,那么编译器就会提示错误。

可检查异常是所有 Exception 的子类。

不可检查异常

不可检查异常是指在程序运行时遇到的一些严重的错误,例如内存不足、数组越界、空指针等。

这些异常不能被程序正常的捕获和处理,它们只能够被抛出,让程序终止执行。

不可检查异常是所有 Error 的子类。

异常处理机制

Java 提供了一套完整的异常处理机制,让程序可以在发生异常时进行处理,从而避免程序突然崩溃。

在 Java 中使用 try-catch 块可以对异常进行处理。通常来说,try-catch 块包含两个部分:try 块和 catch 块。

当程序执行到 try 块时,如果发生异常,程序将会抛出一个异常对象,并且执行过程将会跳转到 catch 块。如果没有发生异常,那么 catch 块将不会被执行。

下面是一个使用 try-catch 块处理异常的例子:

try {
  // 一些可能会出现异常的代码
} catch (SomeException e) {
  // 捕获 SomeException 异常并进行处理
} finally {
  // finally 块中的代码,无论是否发生异常都会被执行
}

try 块中是一些可能会出现异常的代码,如果发生了 SomeException 异常,程序将会跳转到 catch 块中进行处理。finally 块中的代码将在程序执行完 try-catch 块后无论是否发生异常都会被执行。

异常的分类

在 Java 中,异常被分为三种类型:Checked Exception、Unchecked Exception 和 Error。

Checked Exception

Checked Exception 是指需要在程序中处理的异常,例如 IOException、ClassNotFoundException 等。

如果程序发生了 Checked Exception,那么编译器就会提示错误,要求程序进行异常处理。

Unchecked Exception

Unchecked Exception 是指不需要在程序中明确处理的异常,例如 NullPointerException、ArrayIndexOutOfBoundsException 等。

如果程序发生了 Unchecked Exception,那么程序将会终止执行。

Error

Error 是指严重的错误,例如 OutOfMemoryError、StackOverflowError 等。

如果程序发生了 Error,那么程序将会终止执行。

自定义异常

在 Java 中,我们可以自定义异常类来满足特定的需求。下面是一个自定义异常的例子:

class MyException extends Exception {
  public MyException(String message) {
    super(message);
  }
}

public class Test {
  public static void main(String[] args) throws MyException {
    throw new MyException("My Exception");
  }
}

MyException 是一个自定义的异常类,继承自 Exception。在 main 方法中,我们抛出了一个 MyException 异常,并将异常信息设置为 "My Exception"。

执行这个程序时,程序将会抛出一个 MyException 异常,并将异常信息输出到控制台。

总结

本文介绍了 Java 异常的概念、异常处理机制、异常的分类以及自定义异常。了解异常处理机制可以让我们编写更加健壮的 Java 程序。在编写 Java 程序时,请注意对异常情况的处理,避免出现程序崩溃的情况。