【javaSE】认识异常
在Java中,所有的异常对象都是从Throwable
类派生而来。Throwable
有两个直接子类:Error
和Exception
。
Error
:表示严重的错误,通常是虚拟机相关的问题,如VirtualMachineError
(虚拟机错误),NoClassDefFoundError
(类定义未找到错误)等,这些错误是不可查的,因为它们在程序的控制和处理能力之外,大多数情况下是异常的一种非常严重的问题,如果出现了,会导致应用程序直接崩溃。Exception
:表示程序可以处理的异常,它又分为两类:CheckedException
(受查异常)和UncheckedException
(不受查异常)。CheckedException
:编译器要求必须处理的异常,如IOException
,SQLException
等,这些异常都是Exception
的子类。它们的发生是可预料的,必须通过try-catch
语句或在方法声明中通过throws
关键字进行处理。UncheckedException
:也称为运行时异常(RuntimeException),它们发生的时候不是必须处理的,但是如果不处理可能会导致程序出错。常见的运行时异常包括NullPointerException
,ArrayIndexOutOfBoundsException
,ClassCastException
等。
以下是一个简单的示例代码,演示了如何捕获和处理Exception
:
public class ExceptionExample {
public static void main(String[] args) {
try {
// 可能会抛出异常的方法调用
methodThatThrowsException();
} catch (Exception e) {
// 异常处理
e.printStackTrace();
}
}
private static void methodThatThrowsException() throws Exception {
// 这里故意抛出一个异常,实际开发中应该处理具体的业务逻辑异常
throw new Exception("示例异常");
}
}
在这个例子中,methodThatThrowsException()
方法故意抛出了一个Exception
异常,在main
方法中调用这个方法,并通过try-catch
语句捕获并处理了异常。在实际的应用程序中,try
块中会包含可能抛出异常的代码,而catch
块用于处理这些异常。
评论已关闭