반응형
package dayday16;
import javax.swing.JOptionPane;
/*
* <비정상 적인 프로그램의 원인>
* 1. 에러 : 프로그램이 될 수 없는 코드상의 오류
* 2. 경고 : 왠만하면 고쳤으면 / 실행은 됨
* 3. 예외 : 돌발 상황 / 사용자의 부주의, 시스템상 오류 등,
*
*
* <Exception class>
* - ~~exception class : 예외클래스
* 1) java에서 모든 케이스별로 클래스로 구현함
* example) NullPointExcetion : 0번지 찾아갔을때 객체화 되는 클래스
* IndexOutOfBoundExcetion : 배열의 인덱스 범위를 초과했을때 객체화 되는 클래스
*
* - exception class는 이 모든 예외 클래스의 루트 클래스
*
*
* <Try-Catch>
* 형식 :
* try{
* 예외상황이 발생할 가능성이 있는 코드작성
* }catch(예외상황1 변수명){//변수선언
* 예외상황1 발생시 실행되는 코드
* }catch(예외상황2 변수명){//변수선언
* 예외상황2 발생시 실행되는 코드
* }finally{
* (옵션사항)try코드구문이 정상적으로 수행됐든
* 예외코드가 수행됐든 무조건 마지막에 실행되는 코드
* }
*
* ->try실행중에 돌발상황이 발생했을경우
* 바로 해당 catch로 이동하여 발생된 예외 객체를 해당 변수에 저장하고
* catch내부의 코드를 실행 (try의 남은 코드는 수행되지 않는다.)
*
*
*
*/
public class test01 {
public static void main(String[] args) {
while (true) {
// jop두 수를 입력받고 나눗셈(몫)을 구하기
try {
String sU1 = JOptionPane.showInputDialog("1번째 숫자 입력");
String sU2 = JOptionPane.showInputDialog("2번째 숫자 입력");
int U1 = Integer.parseInt(sU1);// NumberFormatException
int U2 = Integer.parseInt(sU2);// NumberFormatException
JOptionPane.showMessageDialog(null, "몫은 " + (U1 / U2) + "입니다.");// ArithmeticException
return;
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "정수를 입력하세요");
//e.printStackTrace();//기본적으로 예외구문이 나올때 실행되는 코드(역순으로 추적..StackTrace)
} catch (ArithmeticException e) {
JOptionPane.showMessageDialog(null, "계산식오류입니다");
} catch (Exception e) { // 모든 예외 처리 루트클래스
JOptionPane.showMessageDialog(null, "예상치 못한 문제가 발생");
} finally {// while문 사용으로 재입력 받을 수 있음.
//JOptionPane.showMessageDialog(null, "프로그램을 종료합니다");
}
}
}
}
반응형
'IT > Programming' 카테고리의 다른 글
[JAVA] Map Interface 사용 예제 (0) | 2023.04.20 |
---|---|
[JAVA] ArrayList를 활용하여 사용자정보입력 사용 예제 (0) | 2023.04.20 |
[JAVA] 예외처리 try-catch, throws 사용 예제 (0) | 2023.04.20 |
[JAVA] 사용자 정의 exception class 사용 예제 (0) | 2023.04.20 |
[JAVA] Map을 사용한 학생관리프로그램 예제 (0) | 2023.04.20 |