티스토리 뷰
12345678910111213141516171819202122232425262728import·java.util.Scanner;¬¬//·논리적·오류·->·버그,·원하는·결과가·나오지·않을·때¬//·컴파일·오류·->·오타,·문법에·어긋난·코드——————————(·error·)¬//·런타임·오류·->·시행·중간에·오류가·발생,·비정상적·종료(·exception·)¬¬public·class·예외처리1·{¬————public·static·void·main(String[]·args)·{¬————————Scanner·in·=·new·Scanner(System.in);¬————————int·a·=·10;¬————————¬————————System.out.print("10을·나눌·숫자·입력·:·");¬————————int·b·=·in.nextInt();¬————————¬————————//·try·:·예외·발생할·가능성이·있는·코드들을·포함¬————————try{¬————————————a·=·10·/b;——————————————————————//·런타임·오류·발생!¬————————————System.out.println(a);——————————//·실행되지·않음¬————————————¬————————}catch(ArithmeticException·e)·{—————//·산술연산오류¬————————————//·catch·:·예외가·발생했을·때·수행할·코드를·작성¬————————————//·catch(·예외·)·->·발생할·예외의·종류·지정¬————————————System.out.println("오류·발생!");¬————————}¬————}¬¬}¬¶
10을 나눌 숫자 입력 : 0
오류 발생!
1234567891011121314151617181920212223242526import·java.util.Scanner;¬¬¬public·class·예외처리2·{¬¬————public·static·void·main(String[]·args)·{¬————————Scanner·in·=·new·Scanner(System.in);¬————————int[]·arr·=·{1,2,3};¬————————int·a·=·10;¬————————¬————————System.out.print("정수·입력·:·");¬————————int·b·=·in.nextInt();¬¬————————//·종류별·오류의·처리·->·catch를·이어서·쓰면·됨¬————————try{¬————————————System.out.println(a/b);————//·b가·0일경우·오류¬————————————System.out.println(arr[b]);—//·b가·4이상일경우¬————————}·catch(·ArithmeticException·e·){¬————————————System.out.println("산술·연산·오류!·0으로·나누면·안됩니다.");¬————————}·catch(·ArrayIndexOutOfBoundsException·e·){¬————————————System.out.println("배열·범위·오류!·배열의크기는·3입니다.");¬————————}¬————}¬¬}¬¶
정수 입력 : 10
1
배열 범위 오류! 배열의크기는 3입니다.
1234567891011121314151617181920212223242526272829import·java.util.Scanner;¬¬¬public·class·예외처리3·{¬¬————public·static·void·main(String[]·args)·{¬————————Scanner·in·=·new·Scanner(System.in);¬————————int[]·arr·=·{1,2,3};¬————————int·a·=·10;¬————————int·b·=·in.nextInt();¬¬————————//·모든·오류를·통틀어서·처리¬————————try{¬————————————System.out.println(a/b);————//·b가·0일경우·오류¬————————————System.out.println(arr[b]);—//·b가·4이상일경우¬————————}·catch(·Exception·e·){¬————————————System.out.println("오류!");¬————————————System.out.println(·e·);¬————————————System.out.println(·e.getMessage()·);¬————————————e.printStackTrace();————————//·오류가·발생한·메소드까지·출력함¬————————}·finally{——//·예외·발생에·상관없이·반드시·실행하고자하는·코드·작성¬————————————System.out.println("무조건·실행됨!");¬————————}¬————————¬————————//·Exception·클래스·:·모든·예외클래스들의·super클래스¬————}¬¬}¬¶
정수 입력 : 10
1
오류!
java.lang.ArrayIndexOutOfBoundsException: 10
10
무조건 실행됨!
java.lang.ArrayIndexOutOfBoundsException: 10
at 예외처리3.main(예외처리3.java:17)
1234567891011121314151617181920212223242526272829import·java.util.Scanner;¬¬class·A{¬————static·void·method1(int·a){¬————————method2(a);¬————}¬————static·void·method2(int·a){¬————————method3(a);¬————}¬————static·void·method3(int·a){¬————————System.out.println(10/a);¬————}¬}¬public·class·에외처리4·{¬¬————public·static·void·main(String[]·args)·{¬————————Scanner·in·=·new·Scanner(System.in);¬————————System.out.print("정수·입력·:·");¬————————int·a·=·in.nextInt();¬————————¬————————try·{¬————————————A.method1(a);¬————————}·catch(Exception·e){¬————————————e.printStackTrace();————//·오류가·발생하기까지·실행된·메소드들을·거꾸로·출력¬————————}¬————}¬¬}¬¶
정수 입력 : 0
java.lang.ArithmeticException: / by zero
at A.method3(에외처리4.java:11)
at A.method2(에외처리4.java:8)
at A.method1(에외처리4.java:5)
at 에외처리4.main(에외처리4.java:22)
123456789101112131415161718//·어떤·메소드들은·반드시·예외처리를·해야·호출·가능함¬//·방법·1·)·try-catch·예외처리¬//·방법·2·)·메소드에·throws·선언¬public·class·예외처리7·{¬¬————public·static·void·main(String[]·args)·{¬————————for(int·i=10;·i>=0;·i--){¬————————————System.out.print(i+"·");¬————————————try{¬————————————————Thread.sleep(1000);¬————————————}catch(Exception·e){¬————————————————System.out.print("오류");¬————————————}¬————————}¬————}¬¬}¬¶
10 9 8 7 6 5 4 3 2 1 0
'JAVA > PRIMER' 카테고리의 다른 글
[JAVA] 파일입출력 - BufferedReader, BufferedWriter (0) | 2018.04.19 |
---|---|
[JAVA] 파일입출력 - FileReader, FileWriter (0) | 2018.04.19 |
[JAVA] HashMap (0) | 2018.04.19 |
[JAVA] HashSet (0) | 2018.04.19 |
[JAVA] LinkedList (0) | 2018.04.19 |