산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 던지기 및 던지기

자바 던지기 및 던지기

이 자습서에서는 예제를 통해 예외 처리를 위해 throw 및 throw 키워드를 사용하는 방법을 배웁니다.

Java에서 예외는 두 가지 유형으로 분류될 수 있습니다.

확인된 예외와 확인되지 않은 예외에 대한 자세한 내용은 Java 예외를 참조하세요.

일반적으로 확인되지 않은 예외를 처리할 필요가 없습니다. 프로그래밍 오류로 인해 확인되지 않은 예외가 발생하기 때문입니다. 그리고 처리하는 대신 수정하는 것이 좋습니다.

이 자습서는 이제 throw를 사용하여 확인된 예외를 처리하는 방법에 중점을 둡니다. 및 throws .

<시간>

자바에서 키워드 발생

throws를 사용합니다. 메소드 선언에서 키워드를 사용하여 그 안에서 발생할 수 있는 예외 유형을 선언합니다.

구문은 다음과 같습니다.

accessModifier returnType methodName() throws ExceptionType1, ExceptionType2 … {
  // code
}

위의 구문에서 볼 수 있듯이 throws를 사용할 수 있습니다. 여러 예외를 선언합니다.

<시간>

예시 1:자바에서 키워드 발생

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    // code that may produce 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 (No such file or directory)

이 프로그램을 실행할 때 test.txt 파일이 존재하지 않음, FileInputStream FileNotFoundException 발생 IOException 확장 수업.

메소드가 예외를 처리하지 않는 경우 메소드 내에서 발생할 수 있는 예외 유형을 throws에 지정해야 합니다. 호출 스택의 상위 메서드가 해당 메서드를 처리하거나 throws를 사용하여 지정할 수 있도록 절 키워드 자체.

findFile() 메소드는 IOException 던질 수 있습니다. main() 메소드는 이 메소드를 호출하고 예외가 발생하면 처리합니다.

<시간>

여러 예외 발생

throws를 사용하여 여러 예외를 발생시키는 방법은 다음과 같습니다. 키워드.

import java.io.*;
class Main {
  public static void findFile() throws NullPointerException, IOException, InvalidClassException {
    
    // code that may produce NullPointerException
    … … … 

    // code that may produce IOException
    … … … 

    // code that may produce InvalidClassException 
    … … … 
  }

  public static void main(String[] args) {
    try{
      findFile();
    } catch(IOException e1){
      System.out.println(e1.getMessage());
    } catch(InvalidClassException e2){
      System.out.println(e2.getMessage());
    }
  }
}

여기서 findFile() 메서드는 NullPointerException를 throw할 수 있음을 지정합니다. , IOExceptionInvalidClassException throws 조항.

NullPointerException은 처리하지 않았습니다. . 확인되지 않은 예외이기 때문입니다. throws에 지정할 필요는 없습니다. 조항 및 처리.

<시간>

키워드 대 발생 시도...잡기...마침내

예외를 일으킬 수 있는 몇 가지 방법이 있을 수 있습니다. try...catch 작성 각 방법에 대해 지루하고 코드가 길어지고 가독성이 떨어집니다.

throws 현재 메서드에서 catch하고 싶지 않은 예외(처리해야 하는 예외)를 선택한 경우에도 유용합니다.

<시간>

자바 throw 키워드

throw 키워드는 단일 예외를 명시적으로 발생시키는 데 사용됩니다.

예외가 발생하면 프로그램 실행 흐름이 try catch 차단 차단하다. throw를 사용합니다. 메소드 내의 키워드.

구문은 다음과 같습니다.

throw throwableObject;

던질 수 있는 객체는 Throwable 클래스의 인스턴스입니다. 또는 Throwable의 하위 클래스 수업.

<시간>

예시 2:자바 throw 키워드

class Main {
  public static void divideByZero() {
    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:3)
    at Main.main(Main.java:7)
exit status 1

이 예에서는 명시적으로 ArithmeticException.

참고: ArithmeticException 확인되지 않은 예외입니다. 일반적으로 확인되지 않은 예외를 처리할 필요가 없습니다.

<시간>

예시 3:확인된 예외 발생

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    throw new IOException("File not found");
  }

  public static void main(String[] args) {
    try {
      findFile();
      System.out.println("Rest of code in try block");
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }
  }
}

출력

File not found

findFile() 메소드에서 IOException이 발생합니다. 생성자에게 전달한 메시지와 함께.

확인된 예외이므로 throws에 지정해야 합니다. 조항.

findFile()을 호출하는 메소드 메서드는 이 예외를 처리하거나 throws을 사용하여 지정해야 합니다. 키워드 자체.

main에서 이 예외를 처리했습니다. () 방법. try에서 프로그램 실행 전송의 흐름 catch 차단 예외가 발생하면 차단됩니다. 따라서 try의 나머지 코드는 블록을 건너뛰고 catch의 문 블록이 실행됩니다.


java

  1. 자바 변수와 리터럴
  2. Java 기본 입력 및 출력
  3. Java 표현식, 명령문 및 블록
  4. 자바 클래스와 객체
  5. 자바 추상 ​​클래스와 추상 메소드
  6. Java 중첩 및 내부 클래스
  7. Java catch 다중 예외
  8. 자바 오토박싱과 언박싱
  9. Java 문자열 replace(), replaceAll() 및 replaceFirst() 메서드
  10. Java 문자열 toLowercase() 및 toUpperCase() 메서드