일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- OOP
- class
- 소수판정
- lang package
- 자료구조
- JSP
- 객체지향
- 프로그래밍
- 알고리즘
- bubble-sort
- jvm
- try&catch
- LANG
- 재귀호출기본
- 현대암호
- 형변환 연산자
- 연결된 예외
- 2884
- HTML
- 디렉티브
- 백준 알고리즘
- 암호론
- 공개키 암호
- 백준
- 클래스 패스
- 예외처리
- java
- 자동 형변환
- BufferedWrite
- 객체
- Today
- Total
목록예외처리 (6)
코드일기장

🎈 연결된 예외 - 한 예외가 다른 예외를 발생시킬 수 있다. - 예외 A가 예외 B를 발생시키면, A는 B의 원인 예외 (cause exception). 두 예외를 연결 시키는 메서드는 initCause() 원인 예외를 반환할 때는 getCause() 🎈 코드 예시 더보기 package composite; public class Main { public static void main(String[] args) { try { install(); } catch (InstantiationException e) { e.printStackTrace(); } } static void install()throws InstantiationException { try{ start(); }catch(MemoryExcep..

사용자 정의 예외 - 프로그래머가 직접 예외 클래스를 만들 수 있다. - 조상은 Exception과 RuntimeException 중에서 선택하면 된다. class Excetpion1 extends Exception{ Excetpion1(String str){ //거의 필수적으로 넣는 코드이다. super(str); } } 보통 예외처리 필수가 아닌 RuntimeException을 조상으로 한다. 결론적으로 사용자 예외 클래스가 Exception과 RuntimeException 둘 중 하나로 상속받아야 한다. 사용자 예외 클래스 생성자 (String 매개변수){ super(매개변수) } 이 또한 필수이다. public class Hello { public static void main(String[] a..

🎈 메서드에 예외 선언 예외를 처리하는 방법은 try&catch 말고 예외 메서드를 선언하는 방법이 있다. try&catch문은 예외에 대한 직접처리를 한다. 반대로 예외 메서드는 예외를 떠넘기고 처리는 안 한다. 메서드에 예외를 선언하려면 메서드 선언부에 throws 키워드를 사용 메서드 내에서 발생할 수 있는 예외를 적으면 된다. static void method()throws Exception,ArrayIndexOutOfBoundsException{ //메서드 내용 } 이런 식으로 method 메서드 선언부에 throws 키워드 작성 후 예외들을 적는다. 예외들은 한 개 이상 적을 수 있다. 2개 이상부터 예외들을 쉼표(,)로 구분한다. public class Hello { public static..

📖 멀티 catch블럭 JDK 1.7부터 여러 catch블럭을 '|' 기호를 사용하여, 하나의 catch블럭을 합칠 수 있게 되었다. 이것을 '멀티 catch 블럭'이라고 한다. 멀티 catch 블럭을 사용하게 되면 중복된 코드를 줄일 수 있다는 장점이 있다. 또한 멀티 catch블럭은 서로서로 내용이 같아야 한다. '|' 기호로 연결할 수 있는 예외 클래스의 개수는 제한이 없다. 멀티 catch블럭안에 참조 변수는 단 하나 🔑 멀티 catch문을 사용한 코드와 아닌 코드 import static java.lang.System.out; public class Exceptiontest { public static void main(String[] args) { try{ out.println(0/0); }c..

프로그래머는 예외에 대한 처리를 해줘야 프로그램이 비정상적인 종료를 방지할 수 있다. 예외처리(exception handing)란, 프로그램 실행 시 발생할 수 있는 예기치 못한 예외 발생에 대비한 코드를 작성하는 것이다. 예외처리의 목적은 예외 발생으로 실행 중인 프로그램의 갑작스러운 비정상 종료를 막는 것이다. exception handing 정의 프로그램 실행시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적 프로그램의 비정상 종료 막기, 정상적인 실행상태 유지 예외 처리를 못하면 프로그램 비정상 종료 후, 처리 못한 예외를 JVM의 예외 처리기가 받아서 예외의 원인을 화면에 출력시켜준다. 예외 처리하기 위해서는 try-catch문을 사용한다. try { //예외 발생 가능성이 있는 ..

💻 Java에서의 프로그램 에러는 크게 3가지가 있다. 서론으론 에러 3가지를 간략하게 정리하겠다 컴파일 에러: 컴파일 시에 발생하는 에러 (실행 아예 불가) 런타임 에러: 실행시 발생하는 에러 (컴파일은 가능) 논리적 에러: 실행은 되지만, 프로그래머의 의도와 다르게 동작하는 것 또 자바에서 실행 시 발생(런타임 에러) 할 수 있는 오류는 두 가지로 나뉜다. 자바에서 정의 내렸다고 볼 수 있다. 에러: 프로그램 코드에 의해 수습될 수없는 심각한 오류 예외: 프로그램 코드에 의해 수습될 수 있는 다소 미약한 오류 에러의 대표적인 예는 메모리 부족(OOME: Out OF Memory Error)나 스택오버플로우 (StackOverflow Error)등이 있다. 에러는 아주 심각한 오류이다. 복구 또 한 못..