java
이 튜토리얼에서는 예제를 통해 Java의 다양한 예외 처리 방식에 대해 알아볼 것입니다.
지난 튜토리얼에서 Java 예외에 대해 배웠습니다. 예외로 인해 프로그램 실행이 비정상적으로 종료된다는 것을 알고 있습니다.
이것이 예외를 처리하는 것이 중요한 이유입니다. 다음은 Java에서 예외를 처리하는 다양한 접근 방식 목록입니다.
try-catch 블록은 Java에서 예외를 처리하는 데 사용됩니다. 다음은 try...catch
의 구문입니다. 차단:
try {
// code
}
catch(Exception e) {
// code
}
여기에서 예외를 생성할 수 있는 코드를 try
안에 배치했습니다. 차단하다. 모든 try
블록 뒤에 catch
이 옵니다. 차단합니다.
예외가 발생하면 catch
에 의해 catch됩니다. 차단하다. catch
try
없이 블록을 사용할 수 없습니다. 차단합니다.
class Main {
public static void main(String[] args) {
try {
// code that generate exception
int divideByZero = 5 / 0;
System.out.println("Rest of code in try block");
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException => " + e.getMessage());
}
}
}
출력
ArithmeticException => / by zero
이 예에서는 숫자를 0
으로 나누려고 합니다. . 여기에서 이 코드는 예외를 생성합니다.
예외를 처리하기 위해 5 / 0
코드를 넣었습니다. try
내부 차단하다. 이제 예외가 발생하면 try
내부의 나머지 코드 블록을 건너뜁니다.
catch
블록은 예외를 catch하고 catch 블록 내부의 명령문이 실행됩니다.
try
에 문이 없는 경우 블록은 catch
예외를 생성합니다. 블록을 건너뜁니다.
자바에서 finally
예외가 있든 없든 블록은 항상 실행됩니다.
finally
블록은 선택 사항입니다. 그리고 각 try
에 대해 블록에는 finally
이 하나만 있을 수 있습니다. 차단합니다.
finally
의 기본 구문 차단:
try {
//code
}
catch (ExceptionType1 e1) {
// catch block
}
finally {
// finally block always executes
}
예외가 발생하면 finally
블록은 try...catch
다음에 실행됩니다. 차단하다. 그렇지 않으면 try 블록 이후에 실행됩니다. 각 try
에 대해 블록에는 finally
가 하나만 있을 수 있습니다. 차단합니다.
class Main {
public static void main(String[] args) {
try {
// code that generates exception
int divideByZero = 5 / 0;
}
catch (ArithmeticException e) {
System.out.println("ArithmeticException => " + e.getMessage());
}
finally {
System.out.println("This is the finally block");
}
}
}
출력
ArithmeticException => / by zero This is the finally block
위의 예에서는 숫자를 0으로 나눕니다. try
내부 차단하다. 여기에서 이 코드는 ArithmeticException
을 생성합니다. .
예외는 catch
에 의해 포착됩니다. 차단하다. 그리고 finally
블록이 실행됩니다.
참고 :finally
을 사용하는 것이 좋습니다. 차단하다. 다음과 같은 중요한 정리 코드가 포함될 수 있기 때문입니다.
자바 throw
키워드는 단일 예외를 명시적으로 발생시키는 데 사용됩니다.
throw
일 때 예외, 프로그램의 흐름은 try
에서 이동합니다. catch
차단 차단합니다.
class Main {
public static void divideByZero() {
// throw an exception
throw new ArithmeticException("Trying to divide by 0");
}
public static void main(String[] args) {
divideByZero();
}
}
출력
Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0 at Main.divideByZero(Main.java:5) at Main.main(Main.java:9)
위의 예에서는 명시적으로 ArithmeticException
throw
사용 키워드.
마찬가지로 throws
키워드는 메소드 내에서 발생할 수 있는 예외 유형을 선언하는 데 사용됩니다. 메소드 선언에 사용됩니다.
import java.io.*;
class Main {
// declareing the type of exception
public static void findFile() throws IOException {
// code that may generate IOException
File newFile = new File("test.txt");
FileInputStream stream = new FileInputStream(newFile);
}
public static void main(String[] args) {
try {
findFile();
}
catch (IOException e) {
System.out.println(e);
}
}
}
출력
java.io.FileNotFoundException: test.txt (The system cannot find the file specified)
이 프로그램을 실행할 때 test.txt 파일이 존재하지 않음, FileInputStream
FileNotFoundException
발생 IOException
확장 수업.
findFile()
메소드는 IOException
던질 수 있습니다. main()
메소드는 이 메소드를 호출하고 예외가 발생하면 처리합니다.
메소드가 예외를 처리하지 않는 경우 메소드 내에서 발생할 수 있는 예외 유형을 throws
에 지정해야 합니다. 조항.
자세한 내용은 Java throw 및 throw를 참조하세요.
java
예외(또는 예외적인 이벤트)는 프로그램 실행 중에 발생하는 문제입니다. 예외가 발생한 경우 발생하면 프로그램의 정상적인 흐름이 중단되고 프로그램/응용 프로그램이 비정상적으로 종료되므로 권장하지 않으므로 이러한 예외를 처리해야 합니다. 예외는 여러 가지 이유로 발생할 수 있습니다. 다음은 예외가 발생하는 몇 가지 시나리오입니다. 사용자가 잘못된 데이터를 입력했습니다. 열어야 할 파일을 찾을 수 없습니다. 통신 도중 네트워크 연결이 끊겼거나 JVM의 메모리가 부족합니다. 이러한 예외 중 일부는 사용자 오류로 인해
예외는 프로그램 실행 중에 발생하는 문제입니다. C++ 예외는 0으로 나누려는 시도와 같이 프로그램이 실행되는 동안 발생하는 예외적인 상황에 대한 응답입니다. 예외는 프로그램의 한 부분에서 다른 부분으로 제어를 전송하는 방법을 제공합니다. C++ 예외 처리는 try, catch,의 세 가지 키워드를 기반으로 합니다. 그리고 던지기 . 던지다 − 문제가 나타나면 프로그램에서 예외가 발생합니다. 이것은 throw를 사용하여 수행됩니다. 키워드. 잡다 − 프로그램은 문제를 처리하려는 프로그램의 위치에서 예외 처리기로 예외를