게임을 하고 있는데 갑자기 캐릭터가 구덩이에 빠진다고 상상해 보세요. 당신은 무엇을 하시겠습니까? 아마도 게임을 다시 시작하거나 다음번에는 구덩이를 피할 방법을 찾을 것입니다. 프로그래밍에서도 비슷한 일이 발생할 수 있습니다. 코드가 예외라는 "구덩이"에 빠질 수 있습니다. 그런 일이 발생하면 프로그램이 작동을 멈추거나 예상치 못한 일이 발생할 수 있습니다.
예외는 코드가 실행되는 동안 문제가 발생했다는 신호와 같습니다. 숫자를 0으로 나누려고 했을 수도 있고(허용되지 않음) 존재하지 않는 파일을 열려고 했을 수도 있습니다. 이러한 문제가 발생하면 Java는 플래그를 세우고 "야! 여기에 문제가 생겼어!"라고 말합니다.
예외를 처리하지 않으면 게임이 저장되지 않아 컴퓨터가 갑자기 꺼지는 것처럼 프로그램이 충돌하고 모든 진행 상황이 손실될 수 있습니다.
예를 살펴보겠습니다.
public class BasicExample { public static void main(String[] args) { int number = 10; int result = number / 0; // This will cause an exception! System.out.println("Result: " + result); // This line will never be reached. } }
이 코드를 실행하려고 하면 멈추면서 "0으로 나눌 수 없습니다!"라고 불평합니다.
이 문제를 방지하기 위해 Java는 try and catch라는 기능을 제공합니다.
public class BasicExample { public static void main(String[] args) { int number = 10; try { int result = number / 0; // We know this might cause a problem. System.out.println("Result: " + result); } catch (ArithmeticException e) { System.out.println("Oops! You can’t divide by zero."); } } }
현재 상황은 다음과 같습니다.
이제 예외를 포착하는 방법을 알았으니 "내 코드에 다양한 종류의 문제가 있으면 어떻게 하지? 어떻게 모두 포착할 수 있지?"라고 궁금하실 것입니다.
게임에서 보물 상자를 열려고 한다고 상상해 보세요. 때로는 열쇠가 맞지 않는 경우도 있고(이것이 하나의 문제임), 상자가 비어 있는 경우도 있습니다(이것은 다른 문제입니다). 정확히 무엇이 잘못되었는지 알고 싶으시죠?
Java에는 다양한 종류의 문제, 즉 예외가 있습니다. 예:
코드에서 다양한 유형의 문제를 포착하는 방법을 살펴보겠습니다.
public class MultipleExceptionsExample { public static void main(String[] args) { try { int[] numbers = {1, 2, 3}; System.out.println(numbers[5]); // This will cause an ArrayIndexOutOfBoundsException! } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Oops! You tried to access an index that doesn’t exist."); } catch (ArithmeticException e) { System.out.println("Oops! You can’t divide by zero."); } } }
상황은 다음과 같습니다.
때로는 무엇이 잘못될지 알 수 없지만 여전히 문제를 파악하고 싶을 수도 있습니다. 일반적인 예외를 사용하여 잘못된 모든 것을 잡을 수 있습니다:
public class GeneralExceptionExample { public static void main(String[] args) { try { int result = 10 / 0; // This will cause an ArithmeticException! } catch (Exception e) { System.out.println("Oops! Something went wrong."); } } }
이렇게 하면 문제가 발생하더라도 catch 블록이 이를 처리하고 프로그램이 충돌하지 않습니다.
게임을 하다가 보물을 찾았다고 상상해 보세요. 성공 여부에 관계없이 게임을 마친 후에는 항상 보물 상자를 닫고 싶어합니다. Java에서 finally 블록은 무슨 일이 있어도 보물 상자가 항상 닫혀 있는지 확인하는 것과 같습니다.
finally 블록은 예외 발생 여부에 관계없이 항상 실행되는 코드 조각입니다. 파일 닫기, 타이머 정지, 보물상자 정리 등을 정리하는 데 사용됩니다.
public class FinallyExample { public static void main(String[] args) { try { int result = 10 / 0; // This will cause an exception. } catch (ArithmeticException e) { System.out.println("Oops! You can’t divide by zero."); } finally { System.out.println("This will always run, no matter what."); } } }
상황은 다음과 같습니다.
Sometimes, the problems you face in your code are special. Maybe the game doesn’t just have treasure chests, but also magical doors that can sometimes be locked. You might want to create a special exception for when the door is locked.
You can create your own exceptions by making a new class that extends Exception. Let’s create an exception called LockedDoorException:
class LockedDoorException extends Exception { public LockedDoorException(String message) { super(message); } } public class CustomExceptionExample { public static void main(String[] args) { try { openDoor(false); } catch (LockedDoorException e) { System.out.println(e.getMessage()); } } private static void openDoor(boolean hasKey) throws LockedDoorException { if (!hasKey) { throw new LockedDoorException("The door is locked! You need a key."); } System.out.println("The door is open!"); } }
Here’s how it works:
In this post, we’ve learned that:
try and catch blocks help us handle these problems, so our program doesn’t crash.
Different types of exceptions are like different kinds of problems.
We can catch multiple exceptions to handle specific problems.
We can also catch any exception using the general Exception type.
The finally block is used to clean up, and it always runs no matter what.
You can create custom exceptions to handle special problems in your code.
And that it! Now you’re ready to handle any problem that comes your way in your code. If you have any questions, feel free to ask!
위 내용은 자바 예외 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!