반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.Exception Handling(예외 처리).try/catch 본문

[IT]/java

java.Exception Handling(예외 처리).try/catch

givemebro 2021. 3. 9. 17:59
반응형

try

예외 상황 발생 예상 지점을 블럭화

catch

예외 상황 발생시 처리하는 영역 > 대안 흐름(대처 방안)


case1

package step3;

public class TestException1 {
	public static void main(String[] args) {
		// Exception이 발생되면 JVM은 Exception메세지를 보여주고 실행을 중단
		String str = "아이유";
		str = null;
		System.out.println(str.length());
		System.out.println("**프로그램 정상종료**");
		// 적절한 Exception Handling 필요
	}
}


/*
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "str" is null
	at step3.TestException1.main(TestException1.java:8)
*/

case2

package step3;

public class TestException2 {
	public static void main(String[] args) {
		// Exception이 발생되면 JVM은 Exception메세지를 보여주고 실행을 중단
		
		/*
		try{//예외처리를 시도
		// 예외 발생 지점 
		}catch(NullPointerException ne){
		//대안흐름 수행
		}
		> 위와 같이 예외처리를 하면 프로그램은 정상 실행됨
		 */
		String str = "아이유";
		str = null;
		try {
		System.out.println(str.length());
		}catch(NullPointerException ne) {
			System.out.println("null이므로 길이를 구할 수 없지롱");
		}
		System.out.println("**프로그램 정상종료**");
	}
}
/*
null이므로 길이를 구할 수 없지롱
**프로그램 정상종료**
*/

 


case3

package step3;

import java.util.ArrayList;

public class TestException3 {
	public static void main(String[] args) {
		// Exception이 발생되면 JVM은 Exception메세지를 보여주고 실행을 중단
		
        /*
        하나의 try 블럭 내에 다양한 예외Exception 발생 상황이면
        catch 구문을 여러개 명시할 수 있음
        이때, 구체 > 추상 (or 자식 > 부모 ) 순으로 정의해야함
        */
		String str = "아이유";
		// str = null;
		ArrayList<String> list = new ArrayList<String>();
		try {
			System.out.println(3 / 0);// catch(Exception e){}가 처리
			System.out.println(str.length());
			list.get(0);
		} catch (NullPointerException ne) {
			System.out.println("null이므로 길이를 구할 수 없지롱");
		} catch (IndexOutOfBoundsException ie) {
			System.out.println("리스트의 범위를 초과하여 요소를 반환할 수 없지롱");
		} catch (Exception e) {
			// 예외 발생 경로를 상세히 보여줌
			e.printStackTrace();
			System.out.println("예외발생 대안흐름실행");
		}
		System.out.println("**프로그램 정상종료**");
	}
}

 


case4

package step3;

public class TestException4 {
	public static void main(String[] args) {
		// 코드 실행 결과 예상

		String age = "21";
		age = "스물한살";
		try {
			int intAge = Integer.parseInt(age);// 문자열을 정수로 변환
			System.out.println(intAge + 1);// 22
		} catch (NullPointerException ne) {
			System.out.println("b");// 실행 안 됨
		} catch (NumberFormatException nf) {
			System.out.println("a");
		}
		System.out.println("c");
	}
}
/*
a
c
*/
package step3;

public class TestException4 {
	public static void main(String[] args) {
		// 코드 실행 결과 예상

		String age = "21";
//		age = "스물한살";
		try {
			int intAge = Integer.parseInt(age);// 문자열을 정수로 변환
			System.out.println(intAge + 1);// 22
		} catch (NullPointerException ne) {
			System.out.println("b");// 실행 안 됨
		} catch (NumberFormatException nf) {
			System.out.println("a");
		}
		System.out.println("c");
	}
}
/*
22
c
*/

 


 case5

package step1;

/*
 * Exception Handling
 * > 예외 발생시 대안흐름 실행
 * try, catch, finally
 */
public class TestExceptionReview {
	public static void main(String[] args) {
		String name = "아이유";
		name = null;
		try {
			System.out.println(name.startsWith("아"));
		} catch (NullPointerException ne) {
			System.out.println("null이므로 name을 입력하삼!");
		}finally {
			System.out.println("finally 항상 실행~");
		}
		System.out.println("정상 실행!!!");
	}
}
/*
null이므로 name을 입력하삼!
finally 항상 실행~
정상 실행!!!
*/
 

java.Exception Handling(예외 처리)

Excetion Handling(예외 처리) Exception : 예외 / Error : 에러 Exception Handling(예외처리) : 프로그램 실행시 예외적 상황 발생에 대한 대안흐름(대처방안)을 실행하고 프로그램을 정상 수행하는데 있음 > E..

broscoding.tistory.com

 

반응형
Comments