컴공생의 다이어리
[자바, Java] 예외(Exception) 발생 시키기 - throw, throws 본문
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
'Development > Java' 카테고리의 다른 글
[자바, Java] 배열 일괄 초기화 - Arrays.fill() (0) | 2023.02.25 |
---|---|
[자바, Java] Apache Commons Lang을 사용해 랜덤 문자열 생성 (0) | 2022.03.03 |
[자바, Java] 설치한 여러 JDK 간편하게 전환 (4) | 2022.01.06 |
[자바, Java] OpenJDK 1.8 설치 (0) | 2022.01.05 |
[자바, Java] 스터디 사이트 추천 (0) | 2021.12.22 |