컴공생의 다이어리

[자바, Java] 예외(Exception) 발생 시키기 - throw, throws 본문

Development/Java

[자바, Java] 예외(Exception) 발생 시키기 - throw, throws

컴공 K 2022. 2. 22. 00:01

Java 예외(Exception) 발생 시키기 - throw, throws

자바에서 강제로 예외를 발생시키기 위해서는 throw를 사용하면 된다. 아래 예시에서는 강제로 Exception을 발생시키면 catch문에서 예외를 잡고 Exception에 대한 메시지를 출력한다.

try {
    // throw로 강제 예외 발생
    throw new Exception("강제 예외 발생!!!");
} catch (Exception e)    {
    System.out.println("err_msg : " + e.getMessage());
    e.printStackTrace();
}

 

 

이번에는 throw와 throws의 차이와 그 예에 대해 정리하고자 한다. throw와 throws는 둘 다 Exception을 발생시킨다는 공통점은 가지고 있지만 아래와 같은 차이점을 가지고 있다.

  • throw : 억지로 에러를 발생시키고자 할 때 사용되거나 현재 메소드의 에러를 처리한 후에 상위 메소드에 에러 정보를 줌으로써 상위 메서드에서도 에러가 발생한 것을 감지
  • throws : 현재 메서드에서 자신을 호출한 상위 메서드로 Exception을 발생 → 즉, 예외를 자신이 처리하지 않고, 자신을 호출한 메소드에게 책임 전가

 

아래 예시 코드를 보면 main 함수의 try-catch 문에서 func1()을 실행시킨다. 이때, func1에서 Exception을 발생시키고 이에 대한 예외를 func1() 함수를 호출한 main에 떠넘긴다. 그리고 main 함수의 catch문에서 Exception에 대한 예외처리를 출력한다.

public class ExceptionExample {
    public static void main(String[] args) {
        try {
            func1();
        } catch (Exception e) {
//            e.printStackTrace();
            System.out.println(e.getMessage());
        }
    }

    public static void func1() throws Exception {
        throw new Exception("예외 발생");
    }
}

 

 

 

 

 

 

 

 

https://khs0806.tistory.com/18

 

[JAVA]자바 예외 발생시키기

자바 개발을 하다 보면 코드에서 Exception이 예상 되는 부분에서 예외처리를 해주게 되는데, 이때 테스트를 위해 직접 Execption을 발생시켜 테스트를 해볼 수 있는 경우가 있습니다. class ExceptionEx {

khs0806.tistory.com

https://programmers.co.kr/learn/courses/5/lessons/315

 

자바 입문 - Exception 발생시키기

자바 입문 가장 널리 쓰이는 프로그래밍 언어 Java로 프로그래밍의 기초를 다져보세요. 이 강의의 내용을 책으로 만나고 싶으시면 여기를 눌러 책 정보를 확인하세요. 강의를 다 들었는데, 지금

programmers.co.kr

https://devlog-wjdrbs96.tistory.com/141

 

[Java] throws와 throw의 차이는?

throw와 throws의 차이점 throw : 에러를 고의로 발생시킬 때 사용합니다. throws : 자신을 호출한 상위 메소드로 에러를 던지는 역할을 합니다. throw란? 예제 코드를 먼저 보겠습니다. public class File { publ

devlog-wjdrbs96.tistory.com

https://wonyong-jang.github.io/java/2020/07/27/Java-throws-throw.html

 

[Java] throws와 throw의 차이 - SW Developer

throws와 throw의 차이 throws와 throw 둘 다 Exception을 발생시킨다는 것에는 차이가 없다. 하지만 둘 사이의 차이점은 아래와 같다 throws 현재 메서드에서 자신을 호출한 상위 메서드로 Exception을 발생

wonyong-jang.github.io

 

728x90
Comments