이 Java 예외는 자,무엇을 배우는 예외에서 Java,무엇이 확인된 예외하고 어떻게 그것은 다른 선택하지 않는 예외입니다. 우리는 또한 자바 체크 예외에 관한 몇 가지 모범 사례를 배울 것입니다.
Table of Contents1. What is an exception in Java?2. Checked vs unchecked exceptions in Java3. Java exception handling best practices
Java 의 예외는 무엇입니까?
“예외가 예기치 않은 발생하는 이벤트 실행되는 동안 프로그램을 방해하는 일반적인 흐름입니다.,”
Java 에서는 모든 오류와 예외가 Throwable 클래스로 표시됩니다. 오류가 발생한 경우에는 방법,방법 개체를 만듭(의 모든 하위의Throwable
)과 손을 그에게 런타임 시스템입니다. 예외 객체라고하는 객체입니다.
예외 객체에는 오류가 발생했을 때의 유형 및 프로그램 상태를 포함하여 오류에 대한 정보가 포함됩니다. 예외 객체를 만들어 런타임 시스템에 전달하는 것을 예외를 던지기라고합니다.
1.1., 예외 처리
응용 프로그램에서 예외 객체가 생성 될 때 두 가지 선택 사항이 있습니다.
- 메소드
- 내에서 처리하거나 호출자 메소드에 전달하여 처리 할 수 있습니다.
이 방법의 책임을 설정하는 동안 할 수있는 매우 중요한 결정이다. 메소드는 그것이 처리 할 모든 예외적 인 시나리오와 그렇지 않을 것임을 명확하게 나타내야합니다. Throw 절을 사용하여 메소드 구문에 정의됩니다.예외를 처리하려면 try-catch 블록의 catch 섹션에서 예외를 잡아야합니다.,
If an exception is not handled in the application, then it will propagate to JVM and JVM will usually terminate the program itself.
Checked vs unchecked exceptions in Java
2.1. Exception Hierarchy
In Java, exceptions are broadly categorized into two sections: checked exceptions and unchecked exceptions.
2.2. Checked Exceptions
Java forces you to handle these error scenarios in some manner in your application code., 그들은 당신의 프로그램을 컴파일하기 시작하면 즉시 당신의 얼굴에 올 것입니다. 당신은 확실히 그들을 무시하고 JVM 에 전달하도록 할 수 있지만 나쁜 습관입니다. 이상적으로 처리해야 합니다.이러한 예외에서 적절한 수준의 내부할 수 있도록 응용 프로그램 사용자에게 실패에 대해와 그에게 요청하는 다시 시도/나중에 제공했습니다.
일반적으로 검사 된 예외는 프로그램의 즉각적인 제어를 벗어나는 오류 시나리오를 나타냅니다. 그들이 발생하는 일반적으로 상호 작용하는 외부 리소스/네트워크 자원을 예를 들어 데이터베이스에 문제,네트워크 연결 오류,누락된 파일 등등.,
Checked exceptions are subclasses of Exception class.
Example of checked exceptions are : ClassNotFoundException, IOException, SQLException and so on.
Checked Exception Example
FileNotFoundException
is a checked exception in Java. Anytime, we want to read a file from filesystem, Java forces us to handle error situation where file may not be present in place.
public static void main(String args) { FileReader file = new FileReader("somefile.txt");}
In above case, you will get compile time error with message – Unhandled exception type FileNotFoundException
.,
프로그램을 컴파일 할 수있게하려면try-catch
블록에서이 오류 상황을 처리해야합니다. 주어진 코드 아래에서 절대적으로 잘 컴파일됩니다.
2.3. 체크되지 않은 예외
Java 는 또한 uncheckedexceptions 를 제공하며,그 발생은 컴파일러에 의해 확인되지 않습니다. 그들은 생활에 올 것이다/어떤 버그 코드가 실행되면,프로그램에 발생합니다.
메소드는 컴파일러가 구현에 의해 던져진 검사되지 않은 예외를 선언하도록 강요하지 않습니다. 일반적으로 이러한 방법은 거의 항상 선언하지 않습니다.,
검사되지 않은 예외는 RuntimeException 의 하위 클래스입니다. 예를 선택하지 예외가 있다:ArithmeticException
,ArrayStoreException
,ClassCastException
와.
RuntimeException
은 자체 클래스의Exception
즉,모두 예외가되지 않은 클래스가 확인된 예외를 암시적으로,그러나 그들은하지 않습니다.”검사되지 않은 예외 예
아래 주어진 코드를 체크 아웃하십시오. 위의 코드는 컴파일 시간 오류를 제공하지 않습니다., 그러나 예를 들어NullPointerException
가 발생합니다. Nullpointerexception 은 java 에서 검사되지 않은 예외입니다.
기억하는 가장 큰 차이를 확인하고 예외가되지 않은 것은 확인된 예외를 강요에 의해 컴파일러를 나타내는 데 사용되는 특별 조건의 제어 프로그램의(예를 들어,I/O 류)하는 동안,체 예외는 동안 발생한 런타임과를 나타내는 데 사용되는 프로그래밍 오류를(예를 들어,a null pointer).,
Java 예외 처리 모범 사례
- 예외를 체크할 때 사용할 수 있는 방법을 할 수 없는 것 그것의 이름을 말하는 그는 않습니다. 예를 들어 메서드 이름이 prepareSystem()는 사전 입력 구성 파일에 몇 가지 구성을 사용하여 그 선언 할 수 있습니다 던지기
FileNotFoundException
의미하는 방법을 사용하여 구성에서 파일을 파일 시스템입니다. - 확인된 예외를 이상적으로 사용될 수 없을 위한 프로그래밍 오류가 있지만,절대로 사용해야에 대한 오류를 자원하고 흐름을 제어에는 등의 경우에는 예외로 합니다.,
- 메소드가 어떤 의미로도 처리 할 수없는 예외 만 던지십시오. 메소드가 발생하자마자 먼저 처리하려고 시도해야합니다. 메소드 내부에서 처리 할 수없는 경우에만 예외를 던지십시오.
- 메소드 서명을 정의하는 좋은 방법은 메소드 이름에 가까운 예외를 선언하는 것입니다. 메소드가
openFile
라는 경우FileNotFoundException
를 던질 것으로 예상됩니까?. 메소드가findProvider
라는 경우NoSuchProviderException
를 던질 것으로 예상됩니다.,또한,이러한 형식의 예외를 만들어야 합 확인하는 예외로 그것을 강제로자 문제를 취급하는 고유한 의미의 방법이 있습니다.
- 규칙은 클라이언트가 예외에서 합리적으로 복구 할 것으로 예상 할 수있는 경우 검사 된 예외로 만듭니다. 클라이언트가 예외에서 복구하기 위해 아무 것도 할 수 없다면 검사되지 않은 예외로 만드십시오.
현실에서,대부분의 응용 프로그램을 복구해야에서 꽤 많은 모두 예외를 포함하여
NullPointerException
,IllegalArgumentExceptions
그리고 많은 다른 선택하지 예외가 있습니다., 션/트랜잭션이 실패할 것이 중단되지만 응용 프로그램을 준비하는 봉사한 다음의 조치/트랜잭션이 있습니다. 일반적으로 응용 프로그램을 종료하는 것이 합법적 인 유일한 시간은 시작 중에 있습니다. 는 경우,예를 들어 구성 파일이 없고 응용 프로그램이 아무것도 할 수 없습니다 현지 않고,그것은 합법적인 응용 프로그램을 종료합니다.,
결론
이후,우리가 배운 사이의 차이를 확인 vs 되지 않은 예외에서 자바와 함께하는 방법 처리되지 않은 예외를 제외 계층에서 자바와 예입니다.
의견에 귀하의 질문을 드롭 주시기 바랍니다.
행복한 학습!!,
- Asynchronous and synchronous exceptions
- exception handling using inner classes
- exception handling best practices
- effectively handle NullPointerException
- Custom exceptions in Java
- Java exception doc
Leave a Reply