1. 예외 구현 및 분류
1. 먼저 예외 클래스의 구조 다이어그램을 살펴보겠습니다.
위 그림은 단순히 예외 클래스 구현 구조 다이어그램을 보여줍니다. 물론, 위 그림은 예외가 전부는 아니며, 사용자는 자신만의 예외 구현을 사용자 정의할 수도 있습니다. 위 그림은 예외 구현을 설명하고 이해하는 데 충분합니다.
Java 관련 무료 동영상 튜토리얼: java 교육 동영상
1. 모든 예외는 모든 예외의 공통 조상인 Throwable에서 상속됩니다.
2. Throwable
에는 Error
와 Exception
이라는 두 개의 하위 클래스가 있습니다. Throwable
有两个子类,Error
和Exception
。
其中Error是错误,对于所有的编译时期的错误以及系统错误都是通过Error抛出的。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(Virtual MachineError
)、类定义错误(NoClassDefFoundError
)等。
这些错误是不可查的,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。对于设计合理的应用程序来说,即使确实发生了错误,本质上也不应该试图去处理它所引起的异常状况。在 Java中,错误通过Error的子类描述。
3.Exception
是另外一个非常重要的异常子类。它规定的异常是程序本身可以处理的异常。
异常和错误的区别是,异常是可以被处理的,而错误是没法处理的。
4.Checked Exception
可检查的异常,这是编码时非常常用的,所有checked exception都是需要在代码中处理的。它们的发生是可以预测的,正常的一种情况,可以合理的处理,比如IOException
,或者一些自定义的异常。除了RuntimeException
及其子类以外,都是checked exception。
5.Unchecked Exception
RuntimeException
及其子类都是unchecked exception。比如NPE空指针异常,除数为0的算数异常ArithmeticException
Virtual MachineError
), 클래스 정의 오류() 등 가상 머신이 애플리케이션을 실행하려고 할 때 발생합니다. >NoClassDefFoundError
)잠깐만요. 이러한 오류는 응용 프로그램의 제어 및 처리 기능 범위를 벗어나기 때문에 확인할 수 없으며, 대부분은 프로그램 실행 시 발생이 허용되지 않는 조건입니다. 잘 설계된 애플리케이션의 경우 오류가 발생하더라도 이로 인해 발생한 예외 조건을 처리하려는 시도가 있어서는 안 됩니다. Java에서 오류는 Error의 하위 클래스를 통해 설명됩니다.
3.Exception
은 또 다른 매우 중요한 예외 하위 클래스입니다. 그것이 지정하는 예외는 프로그램 자체가 처리할 수 있는 예외입니다. 예외와 오류의 차이점은 예외는 처리할 수 있지만 오류는 처리할 수 없다는 것입니다. 4.Checked Exception
코딩할 때 매우 흔히 사용되는 Checked Exception은 모든 Checked Exception을 코드에서 처리해야 합니다. 이는 정상적인 상황이며 IOException
또는 일부 사용자 정의 예외와 같이 합리적으로 처리될 수 있습니다. RuntimeException
및 해당 하위 클래스를 제외하고 모두 확인된 예외입니다. 5.검사되지 않은 예외
RuntimeException
및 해당 하위 클래스는 모두 검사되지 않은 예외입니다. 예를 들어 NPE 널 포인터 예외, 제수가 0인 경우의 산술 예외 ArithmeticException
등이 있습니다. 이러한 종류의 예외는 런타임 시 발생하며 사전에 포착하여 처리할 수 없습니다. 오류 역시 확인되지 않은 예외이므로 미리 처리할 수 없습니다.
2. 예외 처리
코드에서의 예외 처리는 실제로 확인 가능한 예외를 처리하는 것입니다. 1. try...catch 문 블록을 통해 처리됨:try { // 程序代码 }catch(ExceptionName e1) { //Catch 块 }
import java.io.*; public class className { public void deposit(double amount) throws RemoteException { // Method implementation throw new RemoteException(); } //Remainder of class definition }
try{ // 程序代码 }catch(异常类型1 异常的变量名1){ // 程序代码 }catch(异常类型2 异常的变量名2){ // 程序代码 }finally{ // 程序代码 }
위 내용은 Java의 예외 유형 및 예외 처리에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!