Java는 아름답고 읽기 쉬운 프로그래밍 언어이지만 개발 과정에서 필연적으로 오류가 발생합니다. 이러한 오류를 해결하기 위해 Java는 예외 처리 메커니즘을 도입했습니다. 이 메커니즘을 통해 프로그래머는 프로그램이 실행되는 동안 문제를 감지하고 적절한 조치를 취할 수 있습니다. 이 기사에서는 예외를 발생시키고 포착하고 처리하는 방법을 포함하여 Java의 예외 처리 메커니즘에 대해 설명합니다.
예외는 무엇인가요?
Exception은 프로그램 실행 중 오류가 발생했음을 나타내는 이벤트입니다. 예를 들어 0으로 나누기, 널 포인터 참조 또는 잘못된 입력이 발생할 수 있습니다. 자바에서 예외(Exception)란 프로그램이 실행 중 발생하는 문제로, 프로그램의 정상적인 실행에 영향을 미치고 프로그램이 비정상적으로 종료되는 현상을 말한다.
Java의 예외 분류
Java의 예외는 확인된 예외와 확인되지 않은 예외의 두 가지 유형으로 분류할 수 있습니다.
예외를 발생시키는 방법은 무엇입니까?
프로그램에서 문제가 발견되면 throw 문을 사용하여 예외를 던질 수 있습니다.
throw new Exception("发生异常了");
이 예에서는 새로운 Exception 객체가 발생합니다. throw 문 뒤에 사용자 정의 예외 클래스의 개체가 오면 지정된 예외가 발생합니다. 다음 예에서는 예외를 사용자 정의하고 프로그램에서 사용하는 방법을 보여줍니다.
public class CustomException extends Exception { public CustomException(String message) { super(message); } }
프로그램에서 사용자 정의 예외 사용:
public void checkAge(int age) throws CustomException { if (age < 0 || age > 100) { throw new CustomException("年龄不在合法范围内"); } //继续执行其他代码 }
위 예에서 연령이 0보다 작거나 100보다 큰 경우 CustomException은 다음과 같습니다. 던져졌다.
예외를 잡는 방법은 무엇입니까?
예외를 처리하는 방법 중 하나는 예외를 "잡는" 것입니다. Java의 try-catch 블록은 예외를 잡는 데 사용됩니다.
try { //需要尝试执行的代码 } catch (Exception e) { //处理异常的代码 }
이 예에서는 예외를 발생시킬 수 있는 모든 코드를 try 블록에 배치할 수 있습니다. try 블록의 코드를 실행할 때 예외가 발생하면 프로그램은 catch 블록으로 점프합니다. catch 블록에서 프로그래머는 예외를 처리하는 데 필요한 단계를 수행할 수 있습니다. 다음은 try-catch 블록 처리를 보여주는 간단한 Java 프로그램입니다.
public static void main(String[] args) { try { int i = 1/0; } catch (Exception e) { System.out.println("发生异常了:" + e); } }
위의 예에서 프로그램은 1을 0으로 나누려고 시도합니다. 이는 허용되지 않으므로 ArithmeticException이 발생합니다. catch 블록은 이 예외를 포착하고 콘솔에 "예외 발생: java.lang.ArithmeticException: / by zero"를 출력합니다.
예외를 처리하는 방법은 무엇입니까?
예외를 처리하는 한 가지 방법은 메서드에서 직접 예외를 발생시키는 것입니다. 이는 일반적으로 호출자가 포착하여 처리합니다. 예외를 처리하는 또 다른 방법은 throws 절이 있는 메서드를 사용하여 처리해야 하는 예외를 지정하는 것입니다. 예는 다음과 같습니다.
public void checkAge(int age) throws CustomException { if (age < 0 || age > 100) { throw new CustomException("年龄不在合法范围内"); } //继续执行其他代码 }
메서드 시그니처 뒤에 지정된 throws 절은 호출자에게 확인된 예외를 포착하거나 발생시켜야 함을 알려줍니다. 호출자가 이 예외를 처리하지 않으면 프로그램이 종료되고 예외 메시지가 출력됩니다.
예외를 처리하는 또 다른 방법은 finally 블록을 사용하는 것입니다. finally 블록의 코드는 try 및 catch 블록 다음에 실행되며 예외 발생 여부에 관계없이 실행됩니다.
try { //需要尝试执行的代码 } catch (Exception e) { //处理异常的代码 } finally { //无论是否发生异常都会执行的代码 }
finally 블록을 사용하는 예는 열려 있는 파일이나 네트워크 리소스를 닫는 것입니다. 이러한 리소스는 Java에서 제한되어 있으므로 해제하려면 해당 리소스를 닫아야 한다는 것을 기억해야 합니다.
BufferedReader reader = null; try { reader = new BufferedReader(new FileReader("文件名")); //对文件执行一些操作 } catch (Exception e) { //处理异常的代码 } finally { try { if (reader != null) { reader.close(); reader = null; } } catch (IOException e) { e.printStackTrace(); } }
이 예에서 try 블록의 코드는 파일을 열고 일부 작업을 수행합니다. try 블록에서 오류가 발생하면 프로그램은 catch 블록으로 점프하여 예외를 처리합니다. try 블록에서 예외가 발생하는지 여부에 관계없이 finally 블록의 코드는 열려 있는 파일을 닫습니다.
결론
Java의 예외 처리 메커니즘을 통해 프로그래머는 프로그램이 실행되는 동안 오류를 감지하고 적절한 조치를 취할 수 있습니다. 이 기사에서는 Java의 예외 분류, 예외 발생 방법, 예외 포착 및 예외 처리 방법에 대해 자세히 설명하고 몇 가지 구체적인 예를 제공합니다. Java 코드를 작성할 때 프로그래머는 모범 사례를 따라 코드 안정성과 신뢰성을 보장해야 합니다.
위 내용은 Java의 예외 처리 메커니즘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!