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

Catch in Java:예외 처리 예제

자바에서 예외란 무엇입니까?

자바의 예외 프로그램 명령의 실행을 중단하고 프로그램 실행의 정상적인 흐름을 방해하는 이벤트입니다. 메소드 내에서 발생한 오류 이벤트 정보를 래핑하여 런타임 시스템에 전달하는 객체입니다. Java에서 예외는 주로 다양한 유형의 오류 조건을 나타내는 데 사용됩니다.

이 튜토리얼에서는 배우게 될 것입니다-

두 가지 유형의 오류가 있습니다.

  1. 컴파일 시간 오류
  2. 런타임 오류

컴파일 시간 오류는 다시 두 가지 유형으로 분류할 수 있습니다.

구문 오류 예:

int a;를 선언하는 대신 in a;로 잘못 선언했습니다. 컴파일러에서 오류가 발생합니다.

예:int a; 변수를 선언했습니다. 몇 줄의 코드 후에 다시 정수를 int a;으로 선언합니다. . 이러한 모든 오류는 코드를 컴파일할 때 강조 표시됩니다.

런타임 오류의 예

런타임 오류를 예외 라고 합니다. 오류. 프로그램 실행의 정상적인 흐름을 방해하는 모든 이벤트입니다.

예외의 예로는 산술 예외, Nullpointer 예외, 0으로 나누기 예외 등이 있습니다.

Java의 예외는 개발자가 제어할 수 없는 것입니다.

동영상에 액세스할 수 없는 경우 여기를 클릭하십시오.

예외가 필요한 이유는 무엇입니까?

서버에 액세스하는 프로그램을 코딩했다고 가정합니다. 코드를 개발하는 동안 문제가 해결되었습니다.

실제 프로덕션 실행 중에는 서버가 다운됩니다. 프로그램이 액세스하려고 하면 예외가 발생합니다.

예외 처리 방법

지금까지 예외는 개발자의 통제 범위를 벗어났습니다. 그러나 환경 문제에 대한 코드 오류를 비난하는 것은 해결책이 아닙니다. 예외적인 상황을 처리하는 강력한 프로그래밍이 필요합니다. 이러한 코드를 예외 처리기라고 합니다.

이 예에서 좋은 예외 처리는 서버가 다운될 때 백업 서버에 연결하는 것입니다.

이를 구현하려면 코드를 입력하여 서버에 연결합니다(기존의 if 및 else 조건 사용).

서버가 다운되었는지 확인합니다. 그렇다면 백업 서버에 연결하는 코드를 작성하십시오.

"if" 및 "else" 루프를 사용하는 이러한 코드 구성은 코드에 처리할 Java 예외가 여러 개 있는 경우에는 효과적이지 않습니다.

class connect{
	if(Server Up){
	 // code to connect to server
	}
	else{
	 // code to connect to BACKUP server
	}
}

캐치 블록 시도

Java는 내장된 예외 처리 기능을 제공합니다.

  1. 일반 코드는 TRY 차단합니다.
  2. 예외 처리 코드는 CATCH 차단

이 예에서 TRY 블록에는 서버에 연결하는 코드가 포함됩니다. CATCH 블록에는 백업 서버에 연결하는 코드가 포함됩니다.

서버가 가동 중인 경우 CATCH 블록의 코드는 무시됩니다. 서버가 다운된 경우 예외가 발생하고 catch 블록의 코드가 실행됩니다.

이것이 자바에서 예외를 처리하는 방법입니다.

try &catch 사용 구문

try{
    statement(s)
}
catch (exceptiontype name){
	statement(s)
}

1단계) 다음 코드를 편집기에 복사

class JavaException {
   public static void main(String args[]){
      int d = 0;
      int n = 20;
      int fraction = n/d;
     System.out.println("End Of Main");
   }
}

2단계) 파일을 저장하고 코드를 컴파일합니다. java JavaException

명령을 사용하여 프로그램을 실행하십시오.

3단계) 산술 예외 – 0으로 나누기는 5행에 대해 아래와 같이 표시되고 6행은 실행되지 않습니다.

4단계) 이제 try와 catch가 이 예외를 처리하는 데 어떻게 도움이 되는지 살펴보겠습니다. 코드 줄을 일으키는 예외를 시도 에 넣습니다. 차단 후 catch 차단하다. 다음 코드를 편집기에 복사합니다.

class JavaException {
 public static void main(String args[]) {
  int d = 0;
  int n = 20;
  try {
   int fraction = n / d;
   System.out.println("This line will not be Executed");
  } catch (ArithmeticException e) {
   System.out.println("In the catch Block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

5단계) 코드를 저장, 컴파일 및 실행합니다. 다음과 같은 결과를 얻을 수 있습니다.

관찰한 대로 예외가 처리되고 코드의 마지막 줄도 실행됩니다. 또한 예외가 발생하는 즉시 제어 흐름이 catch 블록으로 점프하기 때문에 Line #7이 실행되지 않습니다.

참고: AritmeticException 객체 "e"는 복구 조치를 취하는 데 유용할 수 있는 발생한 예외에 대한 정보를 전달합니다.

자바 예외 클래스 계층

하나의 catch 문이 실행된 후 나머지는 무시되고 try/catch 블록 이후에 실행이 계속됩니다. 중첩된 catch 블록은 예외 계층 구조를 따릅니다.

예: try 및 catch 블록의 중첩을 이해하려면

1단계) 다음 코드를 편집기에 복사합니다.

class JavaException {
 public static void main(String args[]) {
  try {
   int d = 1;
   int n = 20;
   int fraction = n / d;
   int g[] = {
    1
   };
   g[20] = 100;
  }
  /*catch(Exception e){
  	System.out.println("In the catch block due to Exception = "+e);
  }*/
  catch (ArithmeticException e) {
   System.out.println("In the catch block due to Exception = " + e);
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println("In the catch block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

2단계) 파일을 저장하고 코드를 컴파일합니다. java JavaException 명령을 사용하여 프로그램을 실행합니다. .

3단계) ArrayIndexOutOfBoundsException이 생성됩니다. int d의 값을 0으로 변경합니다. 코드를 저장, 컴파일 및 실행합니다.

4단계 ) ArithmeticException이 생성되어야 합니다.

5단계) 10행에서 12행까지의 주석을 제거합니다. 코드를 저장, 컴파일 및 실행합니다.

6단계) 컴파일 오류? Exception이 ArithmeticException Exception의 기본 클래스이기 때문입니다. ArithmeticException에 의해 발생한 모든 Exception은 Exception 클래스에서도 처리할 수 있습니다. 따라서 컴파일 오류입니다.

자바 최종 차단

finally 블록은 예외가 발생하더라도 실행됩니다. 시도 블록에서. 선택사항입니다. try 블록과 함께 사용합니다.

 try {
  statement(s)
 } catch (ExceptiontType name) {

  statement(s)

 } finally {

  statement(s)

 }

try 블록에서 예외가 발생한 경우 catch 블록이 실행된 후 finally 블록이 실행됩니다.

1단계) 다음 코드를 편집기에 복사합니다.

class JavaException {
   public static void main(String args[]){
    try{
       int d = 0;
       int n =20;
       int fraction = n/d;
    }
  catch(ArithmeticException e){
    System.out.println("In the catch block due to Exception = "+e);
  }
  finally{
	System.out.println("Inside the finally block");
  }
}
}

2단계) 코드를 저장, 컴파일 및 실행합니다.

3단계) 예상 출력. 마지막으로 예외가 발생하더라도 블록이 실행됩니다.

4단계) 변수 d =1의 값을 변경합니다. 코드를 저장, 컴파일 및 실행하고 output.Bottom of Form

을 관찰합니다.

요약 :


java

  1. try, except 및 finally 문을 사용하는 Python 예외 처리
  2. 자바 예외 처리
  3. 자바 시도 ... 캐치
  4. Java catch 다중 예외
  5. C++ 예외 처리:시도, 캐치, 던지기 예제
  6. 예제가 있는 Java 문자열 charAt() 메서드
  7. 예제가 포함된 Java 문자열 endWith() 메서드
  8. Java BufferedReader:예제를 사용하여 Java에서 파일을 읽는 방법
  9. 프로그램 예제가 있는 Java의 삽입 정렬 알고리즘
  10. Python 예외 처리:try, catch, finally 및 제기 [예제]