이 Throw 키워드는 예외 처리 개념에서 두드러지게 사용됩니다. 이름에서 알 수 있듯이 throw 키워드는 프로그램에서 컴파일러로 예외를 던지는 것입니다. 예외에 대한 브리핑은 코드 실행 중에 불일치가 발생할 경우 컴파일러가 프로그램에서 튀어나오는 오류 유형입니다. 이 throw 키워드를 사용하면 프로그램 실행 시간 동안 오류의 원인을 해석하여 예외를 정의할 수 있습니다.
무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
아래에서 자세한 내용을 살펴보겠습니다.
구문
Java의 throw 구문은 다음과 같습니다.
throw exception_type ;
또는
throw instance;
여기서는 예시를 통해 키워드가 어떻게 사용되는지 확인하고 흐름이 어떻게 이루어지는지 이해할 수 있습니다.
import java.util.Scanner; public class Main { public static void main(String[] args) { int c; Scanner sc = new Scanner(System.in); System.out.println("Enter value of A: "); int a = sc.nextInt(); //Scanner b = new Scanner(System.in); System.out.println("Enter value of B: "); int b = sc.nextInt(); try { c= a/b; if(b==0) { throw new ArithmeticException(); } System.out.println("Value of C is: " +c); } catch(ArithmeticException e) { System.out.println("Caught this here"); } finally { } System.out.println("Finally block is here"); } }
0으로 나누는 고전적이고 간단한 예를 통해 이 문제를 다루겠습니다.
아래 코드 분석:
아래 출력을 확인해 보겠습니다.
출력 1: b 값이 0이 아닌 경우.
'B' 값이 0이 아니기 때문에 try, throw 및 catch 블록이 실행되지 않은 것이 눈에 띕니다. 결국 Exception 생성과 관계없이 블록이 실행됩니다.
출력 2: b 값이 0인 경우
강조 표시된 부분은 예외가 성공적으로 발생하고 catch 블록에 의해 포착되었는지 확인합니다.
그럼 아래 예시를 살펴보겠습니다.
예:
단일 프로그램에서 어떻게 여러 예외를 발생시킬 수 있는지 살펴보겠습니다.
public class Main { public static void main(String[] args) { String sun[] = {"chocolate", "honey", "sugar", "sweet", "bitter"}; String h = null; try { for (int i=0; i<=7; i++) { if(i > sun.length) { throw new ArrayIndexOutOfBoundsException(); } System.out.println(sun[i]); } } catch(ArrayIndexOutOfBoundsException ae) { System.out.println("Inside array index out of bounds exception catch block"); } try{ sun[0]=h; if (sun[0] == null) { throw new NullPointerException(); } System.out.println("Value of sun[0] is: " +sun[0]); } catch(NullPointerException f) { System.out.println("Caught Null point exception"); } finally { System.out.println("executing finally"); } } }
위에서는 두 가지 유형의 예외를 사용하고 키워드를 던져 프로그램을 해석했습니다. 범위를 벗어난 배열 인덱스 및 Null 포인터 예외는 여기서 단일 프로그램에서 사용한 것입니다.
출력:
이 throw 키워드는 try 블록과 catch 블록 사이의 다리 역할을 하는 데 도움이 됩니다. 프로그램 제어를 try 블록에서 catch 블록으로 옮기는 데 도움이 됩니다.
throw 키워드를 사용하거나 사용하지 않고 프로그램이 작동하는 방식의 예를 보여 드리겠습니다.
public class Main { public static void main(String[] args) { try { int a = Integer.parseInt ("Happy") ; System.out.println("Will this get printed?"); } catch(NumberFormatException e) { System.out.println("Number format exception of catch block"); } System.out.println("Priting after catch block"); } }
throw 키워드 없이 코드를 작성했습니다. 그러나 우리는 예외를 처리할 블록을 잡기 위해 코드를 사용했습니다. 그럼 위의 결과를 아시나요?
예상됐죠? 그래서 코드를 실행하고, 예외를 발견하고, 그 예외를 잡았습니다.
이제 throw 문을 삽입하면 코드가 어떻게 작동하나요? 아래를 살펴보겠습니다.
public class Main { public static void main(String[] args) { try { int a = Integer.parseInt ("Happy") ; throw new NumberFormatException(); System.out.println("Will this get printed?"); } catch(NumberFormatException e) { System.out.println("Number format exception of catch block"); } System.out.println("Priting after catch block"); } }
하이라이트된 부분만 위 두 코드의 변화입니다.
출력:
예, throw 키워드 이후의 인쇄 문에 접근할 수 없기 때문에 컴파일 오류가 발생했습니다. 이 예제를 통해 "try에서 catch 블록으로 제어권을 전달한다"는 것이 무엇을 의미하는지 정확히 이해하시길 바랍니다.
연습으로 키워드를 던진 후 print 문을 제거하고 프로그램이 어떻게 반응하는지 확인해 보세요.
그래서 예외 처리 시 throw 명령이 그림에 등장한 방식은 다음과 같습니다. THROW와 THROWS 키워드 사이에는 상당한 차이가 있습니다. 둘 다 예외 개념과 함께 사용됩니다. 우리는 이미 "THROW" 키워드를 사용할 수 있는 개념과 방법 및 위치를 알고 있습니다. 연습하고 다양한 방법으로 사용해 보세요. 계속 배우세요.
위 내용은 Java에서 키워드 던지기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!