IT/Programming / / 2023. 4. 20. 13:25

[JAVA] Exception class 사용 예제

반응형
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, "프로그램을 종료합니다");
			}
		}
	}
}
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유