2020.11.04 일지

0후·2020년 11월 4일
0

비트캠프

목록 보기
13/112

오늘의 요약

1. 예외 처리
    (1) 예외( Exception )
	    프로그램이 정상적으로 진행되지 못하게 하는 '돌발 상황'

		ex) 숫자가 아닌 형태의 문자를 숫자로 바꾸려할 때 
			채팅하다가 상대방이 나가버린 경우
			온라인 게임하고 있는데 게임 서버가 다운된 경우
				- 게임서버가 다운된 경우
				- 전원케이블이 빠짐
				- 번개가 쳐서 집안 전기 끊김

	(2) 예외처리 목적
		프로그램 진행 시 발생할 수 있는 '돌발상황'을 예외로 '미리 정해놓고',
		해당하는 예외가 발생했을 경우 적절한 조치를 취해서, 
		프로그램이 '정상적으로 작동'하도록 하는 것

	(3) 계층도
					Object
					  |
				   Throwable
				   |       |
				Error   Exception
				  |       |
                      CompileException   RuntimeException
		     (CheckedException)

	(4) 특징
		1) throw 로 예외를 발생시킴
		2) throws 로 에외발생 가능성을 표식할 수 있음 (==떠넘길 수 있음)
		3) try catch 로 잡을 수 있음 (==적극적으로 때려잡음)
		4) 생성자나 메소드에서만 발생할 수 있음
		5) 상위 Exception 으로도 처리가 가능
		* 모든 예외는 Exception 이라는 클래스로 잡을 수 있음

	(5) 처리방법 ( ***** )
		1) 때려 잡는 법
			try{
				예외발생구문(생성자 or 메소드)
			}catch(예외타입 예외객체){
				처리 로직
			}

		2) 떠넘기는 법
			throws 예외타입

		* 계속 떠넘기다보면 jvm이 처리한다

	(6) try절 안에 2개 이상의 예외가 발생
		1) 예외들이 상속관계 O
			[순서존재] 하위(자식)예외부터 잡아줌
			catch(MyException me)
			catch(Exception e)
		2) 예외들이 상속관계 X
			[순서존재X] 아무예외나 먼저 잡아주면 됨
			catch(MyException me)
			catch(YourException ye)

	(7) 2개 이상의 예외를 떠넘길 때
		(ex: throws MyException, YourException, ... )

	(8) finally* 써도 되고 안 써도 되는 옵션이다.
		1) 항상 수행되는 절
			(심지어, return 을 만나더라도 수행하고 return 된다)
		2) try 절이 나오면 
		   catch 절이 나오거나, finally 절이 나오거나
		   아니면, 둘다 나오거나 해야 함 
		3) 얘는 못 이김
			System.exit(-1); // 비정상 종료를 뜻할 땐 nonzero를 사용함, -1 사용하는 것이 관례임
			System.exit(0); // 정상 종료
profile
휘발방지

0개의 댓글