Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 예외를 throw하는 방법

예외는 프로그램 실행 중에 발생하는 예기치 않은 이벤트입니다. 코드에서 예외가 발생하면 프로그램의 흐름이 종료됩니다.

Java로 코딩할 때 예외를 올바르게 처리하는 것이 중요합니다. 그렇지 않으면 코드가 실행 중에 종료되어 최종 사용자 경험에 영향을 줄 수 있습니다.

바로 여기서 throw 및 throw 키워드가 사용됩니다. Java throw 및 throw 키워드는 Java에서 예외를 처리하는 데 사용됩니다. 이 자습서에서는 예제를 참조하여 Java에서 이러한 키워드를 사용하는 방법에 대해 설명합니다.

자바 예외

Java에는 프로그램의 흐름에 영향을 줄 수 있는 두 가지 이벤트, 즉 오류와 예외가 있습니다.

첫 번째 이벤트는 메모리 누수, 시스템 메모리 부족 및 라이브러리 호환성 문제와 같은 Java Virtual Machine의 문제를 나타내는 오류입니다. 오류가 발생하면 프로그램이 복구되지 않을 수 있습니다. 그러나 오류는 일반적으로 코더의 제어 밖이므로 Java에서는 오류를 처리하지 않습니다.

예외는 프로그램에 영향을 줄 수 있는 두 번째 유형의 이벤트입니다. 코드에서 예외를 포착하고 처리할 수 있습니다. 예외가 발생하면 예외에 대한 정보가 포함된 개체가 생성되며, 이 정보를 사용하여 예외가 발생하면 어떤 일이 발생해야 하는지 코드에 알릴 수 있습니다.

예외가 발생하는 몇 가지 이유는 다음과 같습니다.

  • 코드 오류
  • 존재하지 않는 파일 열기
  • 잘못된 사용자 입력
  • 네트워크 연결 끊김

예외 처리를 시작하기 전에 알아야 할 두 가지 유형의 예외가 있습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

  • 확인되지 않은 예외는 런타임에 확인됩니다. 여기에는 ArithmeticException이 포함됩니다. 및 ArrayIndexOutOfBoundsException .
  • 확인된 예외는 컴파일 타임에 확인되며 IOException을 포함합니다. 및 InterruptedException .

대부분의 경우 코드에서 확인된 예외를 처리하려고 합니다. 확인되지 않은 예외는 일반적으로 코드의 예기치 않은 동작이 아니라 프로그래밍 오류의 결과이기 때문입니다.

Java throws 키워드

Java throws 키워드는 코드 블록에서 발생할 수 있는 예외 유형을 선언하는 데 사용됩니다. 다음은 throw 절의 구문입니다.

accessModifier return functionName() throws Exception1, Exception2 {
   // Run code
  }

이것이 어떻게 작동하는지 설명하기 위해 예를 사용하겠습니다. 16세 이상 영화를 관람하는 고객의 연령을 확인하는 영화관 프로그램을 구축한다고 가정합니다. 고객이 16세 미만인 경우 영화에 입장할 수 없습니다. 16세 이상인 경우 입장이 허용되어야 합니다.

다음은 고객의 연령을 확인하고 고객이 16세 미만인 경우 ArithmeticException 예외를 발생시키는 데 사용할 코드입니다.

class Main {
	public static void verifyAge(int age) throws ArithmeticException {
		if (age < 16) {
			throw new ArithmeticException("This customer is not old enough to see the movie.");
		} else {
			System.out.println("This customer is old enough to see the movie.");
		}
	}

	public static void main(String[] args) {
		verifyAge(14);
	}
}

코드는 다음을 반환합니다.

"main" 스레드의 예외 java.lang.ArithmeticException:This customer is not old enough to see the movie.

Main.verifyAge(Main.java:4)의     at Main.verifyAge(Main.java:4)

Main.main(Main.java:11)의     at Main.main(Main.java:11)

이 프로그램을 실행할 때 주 프로그램에서 지정하는 age 매개변수는 14로 설정됩니다. 이것은 16보다 작으므로 verifyAge() 메소드가 실행되면 age < 16 문이 실행됩니다. true로 평가되고 ArithmeticException이 발생합니다.

throws 키워드는 verifyAge() 에 의해 반환될 예외 유형을 정의하는 데 사용됩니다. 방법. throw 키워드는 프로그램에서 예외를 throw하는 데 사용됩니다.

자바 throw 키워드

Java throw 키워드는 코드에서 단일 예외를 throw하는 데 사용됩니다. throw 키워드 뒤에는 예외가 발생하면 프로그램에서 throw될 개체가 옵니다.

Java throw 키워드의 구문은 다음과 같습니다.

throw throwObject;

Java에서 예외를 처리하는 데 사용되는 throw 문의 몇 가지 예를 살펴보겠습니다.

확인된 예외 발생

"이 파일이 존재하지 않습니다."라는 메시지가 나타나길 원한다고 가정합니다. IOException이 발생했을 때 우리 프로그램에서 만납니다. IOExceptions 체크된 예외이므로 "throw" 키워드를 사용하여 처리해야 합니다. 다음은 예외를 처리하는 데 사용할 코드입니다.

import java.io.*;

class Main
	public static void getFile() throws IOException {
		throw new IOException("This file does not exist.");
	}
	
	public static void main(String[] args) {
		try {
			getFile();
		} catch (IOException error) {
			System.out.println(e.getMessage());
		}
	}
}

코드는 다음을 반환합니다.

This file does not exist.

코드를 분해해 보겠습니다. 먼저 java.io 를 가져옵니다. 파일을 처리하는 모든 프로그램에서 사용할 라이브러리입니다. 그런 다음 프로그램의 코드를 저장하는 Main이라는 클래스를 만듭니다.

Main에서 클래스에서 getFile() 이라는 함수를 정의합니다. IOException 발생 . 이 함수는 "이 파일이 존재하지 않습니다"라는 메시지와 함께 IOException을 발생시킵니다. 우리 프로그램에.

Main 클래스의 main 함수에서 getFile() 실행을 시도하는 try/catch 블록을 만듭니다. 방법. IOException이 발생하면 catch 블록 내의 코드가 실행되고 IOException의 메시지가 콘솔에 인쇄됩니다. 따라서 우리 코드는 "이 파일이 존재하지 않습니다."를 반환합니다. 이는 앞서 선언한 메시지입니다.

확인되지 않은 예외 발생

따라서 StringIndexOutOfBounds 우리 프로그램이 존재하지 않는 문자열의 인덱스 값에 액세스하려고 하면 예외입니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

class Main {
	public static void outOfBounds() {
		throw new StringIndexOutOfBoundsException("This index value is invalid.");
	}

	public static void main(String[] args) {
		outOfBounds();
	}
}

코드에서 많은 일이 진행 중이므로 분해해 보겠습니다. 먼저 이 프로그램에 대한 코드가 있는 Main이라는 클래스를 선언했습니다.

그런 다음 outOfBounds()라는 함수를 만들었습니다. 실행될 때 StringIndexOutOfBounds가 발생합니다. 예외. 메시지 This index value is invalid. 예외가 동반됩니다. 마지막으로 메인 프로그램에서 outOfBounds()를 호출합니다. 함수는 다음을 반환합니다.

"main" 스레드 예외 java.lang.StringIndexOutOfBoundsException:이 인덱스 값이 유효하지 않습니다.

Main.outOfBounds(Main.java:3)의     at Main.verifyAge(Main.java:4)

Main.main(Main.java:7)의     at Main.main(Main.java:11)

이 예에서는 확인되지 않은 예외가 발생했습니다. 이것은 앞서 논의한 것처럼 일반적으로 필요하지 않지만 구문을 보여주기 위해 확인되지 않은 예외를 발생시켰습니다.

결론

확인된 예외를 처리하는 것은 Java에서 유지 관리 가능한 코드를 작성하는 중요한 부분입니다. Java에서 throw 및 throw 키워드는 예외를 throw하고 처리하는 데 사용됩니다.

이 자습서에서는 Java에서 throw 및 throw 키워드를 사용하는 방법을 설명하고 프로세스를 배우는 데 도움이 되는 관련 예제를 제공했습니다. 이 튜토리얼을 읽고 나면 전문가처럼 Java에서 예외를 처리하고 처리할 준비가 된 것입니다!