목록JAVA/chapter19_exception (10)
WON.dev
Q2. Test02.java 사용자로부터 10이상의 정수를 입력 받아 난수 (0 ~ 9)로 나눈결과를 출력하시오. 위과정을 100번 반복하여 출력하며, 나눌 수없는 경우에는 나눈 결과를 0으로 대신출력한다. Q3. Test03.java 나이를 입력 받아 출력하시오. 나이가 0 ~ 150 사이의 범위를벗어나면 AgeException 클래스를 이용하여 예외를 처리하시오. 나이를 입력 받기 위해 int getAge() 메소드를 이용하시오. Q4. Test04.java 주민등록 번호 (하이픈 포함)를 입력 받아 출력하시오. 주민등록번호가 14글자가 아니면 PerIDException 클래스를 이용하여 예외를 처리하시오. 주민등록번호를 입력받기 위해 String getPerID() 메소드를 이용하시오. Q5. Te..
package org.joonzis.ex; /* * DepositException: 마이너스 입금 처리, 예외 코드 1000 * WithdrawException: 잔액초과 출금 처리, 예외 코드 2000 * : 마이너스 출금 처리, 예외 코드 2001 */ class BankAccount{ // 필드 private String no;// 계좌 번호 private long balance;// 계좌 잔액 public BankAccount(String no, long balance) { this.no = no; this.balance = balance; } // 입급 public void deposit(long money) throws DepositException{ if(money < 0) { throw n..
package org.joonzis.ex; // 예외 클래스 : Exception을 상속 받아서 만든다(Custom Exception) // 예외 클래스를 만드는 이유 : 사용자 친화적인 예외 메세지로 변경 가능. // 예외가 아닌 것도 예외로 만들 수 있다. class MyException extends Exception{ // 경고 없애려고 넣은거니까 신경쓰지말자 당장은 private static final long serialVersionUID = 1L; public MyException(String message) { super(message); } } public class Ex08_exception { public static void main(String[] args) { try { thro..
package org.joonzis.ex; public class Ex07_exception { public static void divide(int num1, int num2) throws ArithmeticException { System.out.println("몫 : " + (num1 / num2)); System.out.println("나머지 : " + (num1 % num2)); } // try-catch 하기 싫으면 떠넘기자 public static void main(String[] args) throws ArithmeticException{ divide(5, 2); divide(5, 0); } }
package org.joonzis.ex; /* * throws(예외 떠넘기기) * - 메소드를 호출한 곳으로 예외를 떠넘긴다. * - 떠넘길 예외 클래스를 쉼표(,)로 구분해서 나열할 수 있다. * - throws 키워드가 붙어있는 메소드는 반드시 try 블록 내에서 호출되어야 한다. * * *** 예외가 발생하는 곳에서 직접 try-catch 하지 않는 이유는 * 동시에 여러 개발자가 같은 메소드를 바라보고 있을 시 * 공용 처리보다는 throws로 각각 가져와 개별 처리를 하기 위함이다. */ public class Ex06_exception { // divide 메소드가 예외 발생 가능성이 있음 // throws를 사용하면 예외를 호출한 곳(main)으로 던진다. // 메소드를 여러 곳에서 사용하..
package org.joonzis.ex; interface Animal{ public void walk(); } class Dog implements Animal{ @Override public void walk() { System.out.println("산책한다."); } public void sleepTogether(){ System.out.println("같이 잔다."); } } class Crocodile implements Animal{ @Override public void walk() { System.out.println("악어 피해 도망간다."); } } public class Ex05_exception { public static void verifyDog(Animal animal) {..
package org.joonzis.ex; /* * NullPointerException * 객체 참조가 없는 상태, 즉 null 값을 갖는 객체를 사용하는 경우 예외 발생 */ public class Ex04_exception { public static void main(String[] args) { try { //String name = null;// 예외 발생 String name = "김씨"; System.out.println("이름 : " + name.toString()); } catch (Exception e) { System.out.println("예외발생"); System.out.println(e.getMessage()); System.out.println("-------------");..
package org.joonzis.ex; /* * NumberFormatException * 주어진 문자열을 정수 및 실수로 변환하지 못할 경우 예외 발생 */ public class Ex03_exception { public static void main(String[] args) { String data1 = "100"; String data2 = "100a"; // 위 변수 데이터를 파싱하여 숫자로 출력 // 첫 번째 변환한 값 : // 두 번째 변환한 값 : // 출력 // 예외 발생 시 "문자열을 숫자로 변환할 수 없습니다." 출력 try { int val1 = Integer.parseInt(data1); System.out.println("첫 번째 변환한 값 : " + val1); int v..
package org.joonzis.ex; /* * ArrayIndexOutOfBoundsException * 배열에서 인덱스 범위를 초과하는 경우 예외 발생 */ public class Ex02_exception { public static void main(String[] args) { /*크기 3 짜리 정수형 배열 arr 를 선언 * 각 인덱스에 순서대로 1, 2, 3 데이터 삽입 * 향상 for문을 이용하여 배열 내 데이터 출력 * * *** 예외 처리 *** * 에러 발생 시 * "인덱스 가용 범위를 벗어났습니다." 출력 */ int[] arr = new int[3]; try { arr[0] = 1; arr[1] = 2; arr[3] = 3;// 해당 위치에서 예외 발생 for(int n : a..
package org.joonzis.ex; import java.util.Scanner; /* * ArithmeticException * 정수를 0으로 나눌 경우 예외 발생 */ public class Ex01_exception { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num1, num2; try { System.out.print("정수1 입력 >> "); num1 = sc.nextInt(); System.out.print("정수2 입력 >> "); num2 = sc.nextInt();// 0 입력 시 System.out.println("덧셈 결과 >> " + (num1 + num2)); Syst..