java exceptions exception handling with examples
Java 예외에 대한이 비디오 자습서는 Java의 예외 처리에 대한 모든 것을 설명합니다. 예외 계층 구조, 유형, 클래스 메서드 등에 대해 배웁니다.
Java 프로그램을 실행할 때 예상치 못한 이벤트로 인해 프로그램의 정상적인 동작 또는 정상적인 흐름이 중단됩니다.
예를 들면 데이터를 읽기 위해 파일을 엽니 다. Open file 호출이 실행되면 열려고하는 파일이 누락되었음을 알 수 있습니다. 이로 인해 프로그램의 정상적인 흐름이 중단됩니다.
프로그램의 정상적인 흐름에 영향을 주거나 방해하는이 이벤트를 ' 예외 ”.
=> 모두를위한 Java 교육 시리즈를 살펴 보려면 여기를 방문하십시오.
다음은 Java 예외 처리에 대한 비디오 자습서입니다.
학습 내용 :
자바에서 예외 처리
프로그램에서 예외가 발생하면 프로그램 실행이 종료됩니다. 갑작스러운 종료이므로 시스템은 메시지를 생성하고 표시합니다. 시스템에서 생성 된 메시지는 일부 코드처럼 암호화되거나 읽을 수 없을 수 있습니다.
따라서 일반 사용자는 프로그램이 갑자기 실행을 중단 한 이유를 이해해야하며 그 이유를 알아야합니다. 예외로 인해 시스템이 생성 한 메시지는 도움이되지 않을 수 있습니다. Java에서는 예외를 처리하고 사용자에게 문제에 대한 의미있는 메시지를 제공 할 수 있습니다.
일반적으로 알려진 예외 처리 '예외 처리' Java 프로그래밍의 두드러진 기능 중 하나입니다.
예외가 발생하는 이유
예외가 발생할 수있는 다양한 이유가있을 수 있습니다. 입력과 관련된 예외 인 경우 입력 데이터가 잘못되었거나 읽을 수 없기 때문일 수 있습니다.
DVD를 하드 드라이브에 복사하기위한 최고의 소프트웨어
파일 I / O에 대한 예외가 발생하면 처리중인 파일이 존재하지 않을 가능성이 높습니다. 다른 시간에는 네트워크 문제, 프린터를 사용할 수 없거나 작동하는 등의 오류가있을 수 있습니다.
프로그램에서 예외와 별도로 오류도 발생합니다. 따라서 예외를 효과적으로 처리하려면 오류와 예외의 차이점을 알아야합니다.
오류는 응용 프로그램에 더 심각한 문제가 있음을 나타내며 응용 프로그램이이를 포착하려고 시도해서는 안됩니다. 반대로 예외는 합리적인 응용 프로그램이 포착하려고 시도하는 조건입니다.
따라서 응용 프로그램의 오류는 더 심각하며 오류가 발생하면 응용 프로그램이 충돌합니다. 반면에 예외는 코드에서 발생하며 프로그래머가 수정 조치를 제공하여 처리 할 수 있습니다.
예외 처리 란?
Java의 예외 처리는 응용 프로그램의 정상적인 흐름을 유지하는 메커니즘입니다. 이를 위해 우리는 프로그램의 런타임 오류 또는 예외를 처리하는 강력한 메커니즘을 사용합니다.
예외를 처리하는 데 사용되는 일련의 코드를 '예외 처리기'라고합니다. 예외 핸들러는 예외가 발생한 시점에서 컨텍스트를 조사합니다. 이는 예외가 발생한 동안 범위에 있던 변수 값을 읽은 다음 Java 프로그램을 복원하여 정상적인 흐름을 계속한다는 것을 의미합니다.
예외 처리의 이점
예외 처리의 주요 이점은 예외가 발생하더라도 응용 프로그램의 정상적인 흐름을 유지한다는 것입니다. 예외가 발생하면 일반적으로 프로그램이 갑자기 종료됩니다.
프로그램에 예외 처리기가 있어도 프로그램이 갑자기 종료되지는 않습니다. 대신 예외 처리기는 프로그램의 모든 문이 정상적으로 실행되고 프로그램 흐름이 갑자기 중단되지 않도록합니다.
Java의 예외 계층
아래 다이어그램은 Java의 예외 계층 구조를 보여줍니다. java.lang.Throwable 클래스 (Object 클래스의 하위 클래스)는 Java Exception의 루트 클래스입니다. Exception 및 Error 클래스는이 클래스에서 파생됩니다.
예외 클래스는 다른 모든 예외에 대한 기본 클래스입니다.
다음은 Java 프로그래머가 알아야 할 모든 주요 예외를 나열하는 Java의 Exception 클래스 계층 구조입니다.
Java의 예외 클래스
계층 다이어그램에서 볼 수 있듯이 Throwable 클래스에는 Exception과 Error라는 두 개의 직접적인 하위 클래스가 있습니다. 외부 소스에서 발생하는 예외는 Exception 클래스에 설명되어 있습니다.
Exception 클래스는 생성자를 Throwable 클래스와 동일하게 선언하고 각 생성자를 호출하면 Throwable 대응도 호출됩니다. 예외 클래스는 메서드를 선언하지 않고 Throwable 클래스 메서드를 상속합니다.
Exception 클래스가 사용하는 생성자와 메서드는 다음과 같습니다.
생성자
빌더 기술 공개 Exception () 메시지가 null 인 새 예외를 생성하는 기본 생성자입니다. 공개 예외 (문자열 메시지) 주어진 메시지로 새로운 예외를 생성하는 생성자. 이 경우 원인이 초기화되지 않고 Throwable.initCause (java.lang.Throwable)에 대한 후속 호출을 사용하여 원인을 초기화 할 수 있습니다. public Exception (String message, Throwable cause) 주어진 메시지와 원인을 사용하여 새로운 예외를 생성합니다. public Exception (Throwable 원인) 주어진 원인과 (cause == null? null : cause.toString ()) (일반적으로 원인의 클래스 및 세부 메시지를 포함)에 의해 제공된 메시지로 새 예외를 구성합니다. protected Exception (문자열 메시지, Throwable 원인, 부울 enableSuppression, 부울 writableStackTrace) 지정된 메시지, 원인, 억제 (활성화 또는 비활성화) 및 쓰기 가능한 스택 추적 (활성화 또는 비활성화)을 사용하여 새 예외를 구성합니다.
행동 양식
방법 프로토 타입 | 기술 |
---|---|
공용 문자열 getMessage () | 발생한 예외에 대한 자세한 메시지를 가져옵니다. |
공개 Throwable getCause () | throwable 객체가 나타내는 예외의 원인을 가져옵니다. |
공용 문자열 toString () | 클래스 이름을 getMessage ()의 결과와 연결하고 결과 문자열을 반환합니다. |
public void printStackTrace () | toString ()의 결과와 스택 추적의 내용을 오류 출력 스트림 인 System.err에 인쇄합니다. |
공용 StackTraceElement () getStackTrace () | 스택 추적의 각 요소를 배열 형식으로 가져옵니다. |
공용 Throwable fillInStackTrace () | 스택 추적을 현재 스택 추적으로 채 웁니다. |
예외 예
다음으로 기본적인 예외 예제를 보여주는 Java 프로그램을 제시합니다. 여기서는 null 값으로 초기화 된 문자열 변수를 제공합니다. 이 변수를 인쇄하려고하면 String 값이 null 일 수 없으므로 예외가 발생합니다.
class Main { public static void main(String args()){ //declare a String variable and initialize it to null String myStr = null; //print the string System.out.println(myStr.length()); } }
산출
Java의 예외 유형
Java는 세 가지 유형의 예외를 지원합니다.
- 확인 된 예외
- 확인되지 않은 예외
- 오류
이 섹션에서는 위의 세 가지 유형에 대해 모두 설명합니다.
# 1) 확인 된 예외
일부 예외는 코드가 컴파일 될 때 컴파일 타임에 확인됩니다. '확인 된 예외'입니다. Java 프로그램은 프로그램 내부의 코드에서 오류가 발생하기 쉬운 것을 발견하면 컴파일 오류를 발생시킵니다.
try-catch 블록에 코드를 포함하거나 throws 키워드를 사용하여 예외를 처리하여 검사 된 예외로 인해 발생하는 컴파일 오류를 처리 할 수 있습니다.
Exception 계층에서 IOException, ClassNotFoundException 등과 같은 Throwable 클래스를 직접 상속하는 클래스는 RuntimeException 및 Error 클래스를 제외하고 모두 확인 된 예외입니다. 확인되지 않은 예외입니다.
다음 Java 프로그램은 Checked Exceptions, FileNotFoundException 및 IOException을 보여줍니다. 이 프로그램에서 우리는 존재하지 않는 파일을 열어서 읽어 보려고합니다.
파일이 존재하지 않기 때문에 파일 열기 메소드는 FileNotFoundException을 발생시킵니다. 다음으로 파일의 내용을 읽고 파일을 닫으려고하면 메서드 호출에서 IOException이 발생합니다.
import java.io.*; class Main { public static void main(String args()) { FileInputStream fis = null; //Open a file fis = new FileInputStream('C:/myfile.txt'); int k; //read contents of the file while(( k = fis.read() ) != -1) { System.out.print((char)k); } //close the file fis.close(); } }
산출
위의 출력에서 예외 처리기가 없기 때문에 확인 된 예외에 대한 컴파일 오류가 발생합니다.
이제이 프로그램에 대한 throws 절을 제공하겠습니다. FileNotFoundException의 부모는 IOException이므로 throws 절 뒤에 IOException을 지정합니다.
import java.io.*; class Main { public static void main(String args()) throws IOException { FileInputStream fis = null; //Open a file fis = new FileInputStream('C:/myfile.txt'); int k; //read contents of the file while(( k = fis.read() ) != -1) { System.out.print((char)k); } //close the file fis.close(); } }
산출
출력에서 볼 수 있듯이 예외를 처리 할 때 컴파일 오류 대신 더 의미있는 출력을 제공합니다.
# 2) 확인되지 않은 예외
확인되지 않은 예외는 런타임에 확인되는 예외입니다. 따라서 예외에도 불구하고 프로그램 컴파일은 성공적입니다. 검사되지 않은 대부분의 예외는 프로그램에서 사용 된 잘못된 데이터로 인해 발생합니다.
'RuntimeException'을 상속하는 클래스는 확인되지 않은 예외입니다. ArrayIndexOutofBounds Exception, ArithmeticException, NullPOinterException 등과 같은 예외는 확인되지 않은 예외의 예입니다.
다음 프로그램은 숫자를 0으로 나눈 런타임 검사되지 않은 예외를 보여줍니다.
class Main { public static void main(String args()) { int num1=10; int num2=0; //divide both numbers and print the result int result=num1/num2; System.out.println(result); } }
산출
프로그램이 성공적으로 컴파일되고 런타임에 ArithmeticException이 발생하는 것을 볼 수 있습니다.
확인되지 않은 예외의 예 :
- ArrayIndexOutOfBoundsException
- NullPointerException
- IllegalArgumentException
- NumberFormatException
위의 두 가지 예외 외에도 다음을 포함하여 몇 가지 추가 Checked 예외가 있습니다.
- SQLException
- InvocationTargetExecption
# 3) 실수
오류는 일반적으로 프로그램에서 되돌릴 수없고 복구 할 수없는 상황이며 오류가 발생하면 프로그램이 충돌합니다. 프로그램 오류의 예로는 OutOfMemoryError, AssertionError, VirtualMachineError 등이 있습니다.
Error 클래스는 Throwable 클래스에서 상속됩니다. 오류는 처리 할 수없는 상황을 설명하고 프로그램 충돌을 초래합니다.
이 섹션의 OutOfMemory 오류를 오류의 예로 설명하겠습니다.
Java의 모든 객체가 new 연산자를 사용하여 할당되고 힙에 저장된다는 것을 알고 있습니다. 힙의 메모리가 부족하면 JVM (Java Virtual Machine)이 객체를 할당 할 수 없습니다. 동시에 가비지 수집기는 메모리를 해제 할 수 없습니다. 이 상황은 OutOfMemory 오류를 발생시킵니다.
Java의 OutOfMemoryError는 다음과 같이 표시됩니다.
'exception in thread 'main' java.lang.outofmemoryerror: java heap space'
프로그램에 OutOfMemoryError가 있다는 것은 너무 많은 데이터가 처리되고 있거나 객체가 너무 오래 보관되고 있음을 의미합니다. 때로는 메모리를 사용하는 타사 라이브러리 일 수도 있습니다.
OutOfMemoryError의 원인
# 1) 자바 힙 공간
응용 프로그램에 종료자가 너무 많으면 Finalize 메서드가있는 클래스 개체는 가비지 수집기에서 즉시 회수되지 않고 나중에 종료를 위해 대기열에 추가됩니다. 때로는 종료가 시간을 따라갈 수 없으며 힙 메모리가 가득 차서 OutOfMemoryError가 발생합니다.
OutOfMemoryError의 또 다른 이유는 지정된 힙 크기가 애플리케이션에 충분하지 않을 수 있기 때문입니다.
다음 코드는 배열에 대해 선언 된 거대한 데이터 크기로 인해 발생할 수있는 OutOfMemoryError를 보여줍니다.
import java.util.*; public class Main { static List list = new ArrayList(); public static void main(String args()) throws Exception { Integer() array = new Integer(100000 * 100000); } }
산출
# 2) Permgen 공간
메모리의 영구 생성 영역도 고갈 될 수 있으며 OutOfMemory 오류가 발생할 수 있습니다.
PermGen 영역의 크기는 JVM 시작 중에 설정됩니다. 사용자가 크기를 설정하지 않으면 플랫폼 별 기본 크기가 사용됩니다.
위의 두 가지가 일반적으로 OutOfMemoryError 발생의 주요 원인이지만 어레이 크기가 VM 제한을 초과하는 등의 다른 원인이있을 수 있습니다.
Java의 예외 목록
다음은 Java에서 발생하는 주요 예외 목록입니다. 이러한 예외 중 일부에 대한 프로그래밍 예제를 제공했습니다. 이는 Java에서 지원하는 내장 예외입니다.
# 1) ArithmeticException : 0으로 나누기와 같은 산술 이상으로 인해 ArithmeticException이 발생합니다.
아래 프로그램은 ArithmeticException의 발생을 보여줍니다.
class Main { public static void main(String args()) { try { //define two numbers int num1 = 100, num2 = 0; int result = num1 / num2; // divide by zero //print the result System.out.println('Result = ' + result); } catch (ArithmeticException e) { System.out.println('ArithmeticException:Division by Zero'); } } }
산출
# 2) ArrayIndexOutOfBoundsException : 잘못된 인덱스를 사용하여 배열 요소에 액세스하면 ArrayIndexOutOfBoundsException이 발생합니다. 사용 된 인덱스가 배열의 크기를 초과하거나 음수입니다.
# 3) ClassNotFoundException : 클래스 정의를 찾을 수 없으면 ClassNotFoundException이 발생합니다.
# 4) FileNotFoundException : FileNotFoundException은 파일이 존재하지 않거나 열리지 않을 때 제공됩니다.
# 5) IOException : 입출력 작업이 실패하거나 중단되면 IOException이 발생합니다.
# 6) InterruptedException : 스레드가 처리 중이거나 휴면 중이거나 대기 중일 때마다 InterruptedException을 발생시켜 중단됩니다.
# 7) NoSuchFieldException : 클래스에 지정된 필드 나 변수가 포함되지 않은 경우 NoSuchFieldException이 발생합니다.
# 8) NoSuchMethodException : 액세스중인 메서드를 찾을 수없는 경우 NoSuchMethodException이 발생합니다.
# 9) NullPointerException : NullPointerException은 null 개체가 참조 될 때 발생합니다. 이것은 Java에서 가장 중요하고 가장 일반적인 예외입니다.
# 10) NumberFormatException : 이 예외는 메서드가 문자열을 숫자 형식으로 변환 할 수 없을 때 발생합니다.
# 11) RuntimeException : 런타임에 발생하는 모든 예외는 RuntimeException입니다.
# 12) StringIndexOutOfBoundsException : StringIndexOutOfBoundsException은 String 클래스에서 throw되며 인덱스가 String 개체의 크기를 초과하거나 음수임을 나타냅니다.
# 13) EOFException : EOFException은 java.io 패키지의 일부이며 파일 끝에 도달하고 파일을 읽을 때 발생합니다.
xml 파일을 여는 방법
# 14) IllegalArgumentException : IllegalArgumentException은 부적합하거나 잘못된 인수가 메서드에 전달되면 throw됩니다. 예를 들면 잘못된 데이터 형식, null이 아닌 값이 필요하거나 범위를 벗어난 인수 인 경우 null 값.
아래 Java 프로그램은 IllegalArgumentException을 보여줍니다.
public class Main { int m; public static void setMarks(int marks) public static void main(String() args) { setMarks(45); setMarks(101); } }
산출
위 프로그램에서 IllegalArgumentException은 범위를 벗어난 마크 (> 45)를 입력하는 setMarks 함수에 대한 두 번째 호출에서 발생합니다.
# 15) InputMismatchException : InputMismatchException은 입력 읽기가 지정된 패턴과 일치하지 않을 때 발생합니다. 예를 들면 프로그램이 정수를 예상하고 부동 소수점을 읽으면 InputMismatchException이 발생합니다.
# 16) NoSuchElementException : NoSuchElementException은 액세스 한 다음 요소가 존재하지 않을 때 발생합니다.
예를 들면 열거 형에서 nextElement () 메서드는 열거 형의 다음 요소에 액세스하는 데 사용됩니다. 요소가 없으면 NoSuchElementException이 발생합니다. 대부분의 Java 컬렉션은이 예외를 발생시킵니다.
아래에 주어진 프로그램이이를 보여줍니다.
import java.util.*; public class Main { public static void main(String() args) { Set hash_Set = new HashSet(); //create an empty hashSet. //This throws NoSuchElementException since hashSet is empty hash_Set.iterator().next(); } }
산출
# 17) ConcurrentModificationException : ConcurrentModificationException은 일반적으로 Collection 클래스에 의해 발생합니다. 이 예외는 개체가 리소스를 동시에 수정하려고 할 때 발생합니다.
예를 들면 스레드는 다른 스레드가 액세스 할 때 컬렉션을 수정할 수 없습니다. 두 개의 스레드를 허용하면 두 스레드가 동시에 컬렉션에 액세스하고 불일치가 발생합니다.
다음 예제는 ConcurrentModificationException을 보여줍니다.
import java.awt.List; import java.util.*; public class Main { public static void main(String() args) { ArrayList A_list = new ArrayList<>(); //add elements to the ArrayList A_list.add(10); A_list.add(20); A_list.add(30); Iterator it = A_list.iterator(); while (it.hasNext()) { Integer value = it.next(); System.out.println('ArrayList Value:' + value); if (value.equals(30)) A_list.remove(value); } } }
산출
위의 프로그램에서 ArrayList가 인쇄되는 동안 동시에 요소를 삭제하려고합니다. 이것은 동시 액세스이므로 예외가 발생합니다.
Java의 사용자 지정 예외
지금까지 Java 언어에 내장되거나 제공되는 모든 예외에 대해 논의했습니다. 이러한 예외 외에도 자체 예외를 정의 할 수도 있습니다. 이를 사용자 정의 예외 또는 사용자 정의 예외라고합니다.
사용자 지정 예외를 사용하여 필요에 따라 예외를 정의 할 수 있습니다.
다음 예제는 Integer 값에 대해 정의한 사용자 지정 예외를 보여줍니다.
//custom exception definition class InvalidValueException extends Exception{ InvalidValueException(String s){ super(s); } } class Main{ static void validate(int int_val)throws InvalidValueException{ if(int_val<10) //value is valid if> 10 else throw exception throw new InvalidValueException('Invalid value'); else System.out.println('This is valid integer'); } public static void main(String args()){ try{ validate(9); }catch(Exception m){System.out.println('Exception occured: '+m);} System.out.println('Code after Exception'); } }
산출
자주 묻는 질문
Q # 1) 예외 란 무엇을 의미합니까?
대답: 프로그램 실행 중에 발생하여 프로그램의 정상적인 실행 흐름을 방해하는 이벤트를 Exception이라고합니다. 예외는 원치 않으며 예상치 못한 것이며 외부 요인이나 프로그래밍 오류로 인해 발생할 수 있습니다.
Q # 2) 오류와 예외의 차이점은 무엇입니까?
대답: 예외는 프로그램의 정상적인 흐름을 방해하는 이벤트입니다. 프로그램에서 예외를 처리하고 프로그램을 정상적으로 계속할 수 있습니다. 오류는 처리 할 수없는 복구 불가능한 이벤트이며 프로그램을 종료합니다.
Q # 3) 예외 처리 란 무엇을 의미합니까?
대답: 예외를 처리하기 위해 프로그램에서 일련의 단계를 지정하는 프로세스를 예외 처리라고합니다. 프로그램에 예외 처리기를 제공함으로써 프로그램의 정상적인 흐름을 보장 할 수 있습니다.
Q # 4) Java에서 예외 처리의 장점은 무엇입니까?
대답: 예외 처리를 사용하면 애플리케이션의 정상적인 실행 흐름을 유지할 수 있습니다. 예외 처리기를 제공 할 때 호출 스택에 오류를 전파 할 수도 있습니다.
질문 # 5) 예외 처리의 용도는 무엇입니까?
대답: 응용 프로그램의 정상적인 실행 흐름을 종료하지 않는 것이 프로그램에서 예외 처리기를 사용하는 주요 용도입니다. 예외 처리기가 없으면 프로그램이 종료되고 예외가 발생하면 정상적인 실행 흐름이 중단됩니다.
프로그램에서 예외를 적절히 처리하면 예외가 발생하더라도 정상적인 실행을 계속할 수 있습니다.
불화를위한 최고의 무료 음성 체인저
예외에 대한 추가 예
예외는 프로그램이 실행되는 동안 발생하여 프로그램 실행을 방해하는 이벤트입니다. 이로 인해 소프트웨어 제품이 갑자기 종료됩니다.
이 예외가 발생하면 Java는 오류 메시지와 클래스에 대한 정보가있는 객체를 만듭니다. 이것은 예외 개체입니다.
Java에서 예외가 필요한 이유는 무엇입니까?
예외없는 ExcepDemo 클래스 :
public class ExcepDemo { public static void main(String() args) { int i=5; int j=0; System.out.println(i/j); System.out.println('statement after division'); } }
산출:
예외 처리를 사용하는 ExcepDemo 클래스 :
public class ExcepDemo { public static void main(String() args) { // TODO Auto-generated method stub int i=5; int j=0; try { System.out.println(i/j); } catch(ArithmeticException ae) { System.out.println('wrong input'); } System.out.println('statement after division'); } }
산출:
시도, 포착 및 최종 차단 :
- 예외는 try, catch 블록에 의해 처리됩니다.
- 예외로 이어질 수있는 문은 try 블록 내에 작성됩니다.
- 예외가 발생하면 catch 블록 내의 명령문이 실행됩니다. 예외가 발생하지 않으면 catch 블록이 실행되지 않습니다.
- 예외 발생 여부와 상관없이 최종 블록이 실행됩니다.
예외 유형
확인되지 않은 예외 :
확인되지 않은 예외는 적절한 프로그래밍 ( 예 : 널 포인터 예외, 산술 예외)는 컴파일러에 의해 확인되지 않습니다. 선택되지 않은 예외는 런타임에 발생합니다.
확인 된 예외 :
- 확인 된 예외는 컴파일러에 의해 확인되며 예외를 throw하거나 처리하는 데 필수적입니다.
- 이 예외는 일반 코드에서 오류 처리 코드를 분리하는 데 사용됩니다.
- 확인 된 모든 예외가 그룹화되어 문제를 구분하는 데 유용합니다.
예: java.io
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class DemoExpChecked { public static void main(String() args) { try { File file=new File('input.txt'); BufferedReader br = new BufferedReader(new FileReader(file)) ; String content; while ((content=br.readLine())!=null) { System.out.println(content); } br.close(); } catch(IOException e) { e.printStackTrace(); } } }
오류
프로그램 논리적 실수 또는 JVM 문제와 관련된 메모리로 인해 오류가 발생할 수 있습니다.
예: 메모리 범위 초과 오류 또는 스택 오버플로 오류입니다.
던지기와 던지기
'Throw'키워드는 예외를 발생시키는 데 사용되는 반면 'throws'키워드는 예외를 선언하는 데 사용됩니다.
던지기 예제 프로그램 :
public class Demothrow { String content ; public void driving(String c) { this.content=c; if (content.isEmpty()) { throw new NullPointerException('content is empty'); } else { System.out.println('content=='+content); } } public static void main(String() args) { Demothrow dt=new Demothrow(); dt.driving(''); } }
예제 프로그램 던짐 :
Throws는이 메서드가이 특정 예외를 throw한다는 정보를 제공하는 데 사용됩니다. 특정 메서드를 호출 할 때 해당 예외를 처리해야합니다.
public class DemoThrows { int i=2,j=0; public void checkmethod () throws ArithmeticException{ System.out.println(i/j); } public static void main(String() args) { DemoThrows d =new DemoThrows(); try { d.checkmethod(); } catch (ArithmeticException ae) { ae.printStackTrace(); } } }
주목해야 할 핵심 사항 :
- 예외는 프로그램 실행 중에 발생하는 비정상적인 이벤트로 실행 흐름에 영향을줍니다.
- 오류는 예외와 다릅니다. 오류 예 : 메모리 오류.
- 확인 된 예외는 컴파일 중에 확인되며이 확인 된 예외를 처리해야합니다.
- 런타임 중에 확인되지 않은 예외가 발생합니다.
결론
Java의 예외 처리에 대한이 자습서에서는 Java의 예외 정의, 예외 처리 및 예외 계층 구조를 소개했습니다. 또한 예외에 액세스하기위한 다양한 생성자와 메소드를 제공하는 Java의 예외 클래스에 대해서도 논의했습니다.
Java에서 발생하는 일반적인 예외 목록을 탐색하고 주요 예외에 대한 프로그래밍 예제를 확인했습니다. 또한 Java 프로그램에서 발생하는 주요 오류와 예외 유형 및 사용자 지정 예외에 대해서도 논의했습니다.