> Java > java지도 시간 > 본문

Java의 다중 캐치 블록

王林
풀어 주다: 2024-08-30 15:11:46
원래의
471명이 탐색했습니다.

Java에 try-catch 블록을 삽입하여 코드 내부에서 예외를 처리할 수 있습니다. 이 글에서는 여러 catch 블록이나 catch 블록에 대한 여러 인수를 사용하여 단일 try 블록에 대한 여러 예외를 처리하는 방법을 살펴보겠습니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문

Java의 다중 Catch 블록 구문은 다음과 같습니다.

구문 1: 간단한 try-catch 블록

try
{
//code snippet which might responsible for exceptions
}
catch (<type_of_exception> <name_of_exception_object>)‏
{
//here we handle exceptions
}
로그인 후 복사

구문 2: 다중 catch 블록이 있는 try-catch 블록

try
{
//code snippet which might responsible for exceptions
}
catch (<type_of_exception> <name_of_exception_object>)‏ //catch block 1
{
//here we handle exceptions
}
catch (<type_of_exception> <name_of_exception_object>)‏ //catch block 2
{
//here we handle exceptions
}
catch (<type_of_exception> <name_of_exception_object>)‏ //catch block 3
{
//here we handle exceptions
}
로그인 후 복사

구문 3: catch 블록의 인수로 여러 catch 문을 사용하는 try-catch 블록

try
{
//code snippet which might responsible for exceptions
}
catch (<type_of_exception1> | <type_of_exception2> | <type_of_exception3> <name_of_exception_object>)‏
{
//here we handle exceptions
}
로그인 후 복사

Java에서 Catch 블록이 어떻게 작동하나요?

처음에는 catch 블록으로 이동하기 전에 try 블록을 확인해야 합니다.

1. 차단해 보세요

예외가 발생할 수 있는 코드 조각이 포함되어 있습니다. 따라서 코드에서 예외가 발생할 수 있다고 의심될 때마다 해당 코드 조각을 try 블록 안에 넣으세요. try 블록에는 적어도 하나의 catch 블록이 필요합니다.

2. 블록 잡기

해당 try 블록 내에 작성된 코드에서 발생할 수 있는 예외를 처리하는 코드 조각이 포함되어 있습니다. 이제 여러 예외가 있는 경우 이를 처리하는 방법은 무엇입니까?

두 가지 방법을 취할 수 있습니다.

  • Try 블록에 다중 Catch 사용: 여기에서는 해당 try 블록에 대해 다중 Catch 블록에서 여러 예외를 처리할 수 있습니다. 프로그램 흐름은 자동으로 하나씩 catch 블록에 도달한 후 예외에 따라 해당 catch 블록을 찾아 그에 따라 처리합니다.
  • Catch 블록의 인수에 여러 Catch 문 사용: 이 기능은 Java 7에서 제공되었습니다. 여기서는 해당 try 블록에 대해 단일 catch 블록(파이프 기호로 구분) 아래에서 여러 예외를 처리할 수 있습니다. 프로그램 흐름은 자동으로 catch 블록으로 이동한 다음 try 블록에 대한 catch 블록 인수 내의 해당 예외를 찾아 그에 따라 처리합니다.

건축자

생성자 내부에 try-catch 블록을 작성할 수도 있으며 이는 예상대로 작동합니다. 아래 예에서는 try 생성자 내부에 코드를 작성합니다. try 블록은 catch 블록에서 처리되는 산술 예외를 생성합니다.

public class MultipleCatchBlockInConstructor
{
MultipleCatchBlockInConstructor()
{
try
{
int num=6/0;
}
catch(ArrayIndexOutOfBoundsException excp)
{
System.out.println("Exception is : "+excp);
}
catch(ArithmeticException excp)
{
System.out.println("Exception is : "+ excp);
}
}
public static void main(String[] args) {
MultipleCatchBlockInConstructor mc=new MultipleCatchBlockInConstructor();
}
}
로그인 후 복사

출력:

Java의 다중 캐치 블록

Java의 다중 Catch 블록 예

이 섹션에서는 다양한 코드 예제에 대해 설명합니다. 이 코드를 직접 시도해보고 주어진 코드와 출력을 합산해야 합니다.

예시 #1

이것은 다중 catch 블록의 간단한 예입니다. 여기서는 try 블록 내에서 예외를 생성하는 명령문을 작성했습니다. 이 예외는 세 개의 catch 블록 중 해당 catch 블록에 의해 처리됩니다.

코드:

public class MultipleCatchBlockInJava {
public static void main(String[] args) {
try{
System.out.println("start of try block");
int num = 6/0;
}
catch(ArithmeticException e)
{
System.out.println("divide by zero exception ");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("ArrayIndexOutOfBounds Exception occurs");
}
catch(Exception e)
{
System.out.println("Any other excpetion");
}
System.out.println("end of try-catch block");
}
}
로그인 후 복사

출력:

Java의 다중 캐치 블록

예시 #2

이 예에서는 try 및 catch 블록을 통해 배열에 대한 범위를 벗어난 예외 처리에 대해 설명했습니다.

코드:

public class MultipleCatchBlockInJava {
public static void main(String[] args) {
try{
System.out.println("start of try block");
int arr[]=new int[6];
System.out.println(arr[12]); //we want to access 12th element of array which does not exist as size is of 6
}
catch(ArithmeticException e)
{
System.out.println("divide by zero exception");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Array IndexOutOfBounds Exception occurs");
}
catch(Exception e)
{
System.out.println("Any other exception");
}
System.out.println("end of try-catch block");
}
}
로그인 후 복사

출력:

Java의 다중 캐치 블록

예시 #3

이 예에서는 catch 블록이 null 포인터를 처리하는 방법을 살펴보겠습니다. 또한 try 블록에는 여러 가지 예외 시나리오가 있지만 프로그램 흐름이 첫 번째 예외 생성 문(여기서는 Nullpointer 예외)에 도달하면 즉시 try 블록에서 벗어나 catch 블록에서 예외 처리기를 검색합니다. try 블록 내부의 다른 예외 생성 문(여기서는 Array index out ofbound 예외)은 무시됩니다.

코드:

public class MultipleCatchBlockInJava {
public static void main(String[] args) {
try{
System.out.println("start of try block");
String str=null;
System.out.println(str.length());  //we want to get length of a null string
int arr[]=new int[6];
System.out.println(arr[12]); //we want to access 12th element of array which does not exist as size is of 6
}
catch(ArithmeticException e)
{
System.out.println("divide by zero exception");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.out.println("Array IndexOutOfBounds Exception occurs");
}
catch(NullPointerException e)
{
System.out.println("Null pointer Exception occurs");
}
System.out.println("end of try-catch block");
}
}
로그인 후 복사

출력:

Java의 다중 캐치 블록

예시 #4

이 예에서는 단일 catch 블록의 여러 인수가 예외를 어떻게 처리하는지 확인합니다.

코드:

public class MultipleCatchBlockInJava {
public static void main(String[] args) {
try{
System.out.println("start of try block");
String str=null;
System.out.println(str.length());  //we want to get length of a null string
int arr[]=new int[6];
System.out.println(arr[10]); //we want to access 10th element of array which does not exist as size is of 6
}
catch(ArithmeticException | ArrayIndexOutOfBoundsException | NullPointerException e )
{
System.out.println("Code is throwing " + e);
}
System.out.println("end of try-catch block");
}
}
로그인 후 복사

출력:

Java의 다중 캐치 블록

결론

이것으로 Java 프로그래밍 관점에서 여러 catch 블록에 대한 학습을 ​​마칩니다. 요약하자면 여러 예외를 처리해야 할 때마다 여러 catch 블록 안에 해당 예외를 작성할 수 있습니다. 또는 Java 7 이상의 경우 단일 catch 블록 인수에 여러 예외를 작성할 수 있으며 프로그램 흐름이 이를 자동으로 선택합니다. 또한 코드를 직접 작성하는 것이 이해를 돕기 위해 중요합니다.

위 내용은 Java의 다중 캐치 블록의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!