PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/10/16 23:21:02
Name Patrick Jane
Subject [질문] Java 예외처리 Throw 관련질문
안녕하세요. 웹프로그래밍과 자바를 같이 공부하다가 궁금한게 있어서 질문올립니다

자바에서 예외처리할때 어떨때는 Throw (예외처리) 이렇게 쓰고 어떨때는  throw new (예외처리) 이렇게 쓰는걸 책에서 봤는데요,

new를 쓰는 경우는 어떤 경우고, 왜 적어야하는 건가요?


void throwIOException(){
    throw new IOException();
}

if (조건){
    throw "print sth";
}

제가 생각한것은 IOException 같은것들은 객체를 던져주는 거기때문에 앞에 new를 써서 객체를 생성해서 던져주는건가요?
검색해도 정확한 답이 안나와서 질문드립니다!!

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
정지연
16/10/16 23:48
수정 아이콘
자바에선 exception 자체도 클래스이고 throw 뒤에는 Exception 클래스를 상속받은 클래스의 객체가 붙어야 하기 때문에 throw new Exception(); 이런식으로 객체를 생성해 보내야 합니다
Patrick Jane
16/10/17 00:12
수정 아이콘
그러면 new가 붙지않은 예외처리들은 상속받은 클래스를 사용하는게 아니라 그냥 처리해서 안붙는거라고 생각하면 될까요?
정지연
16/10/17 10:14
수정 아이콘
throw "print sth";
지금 확인해 보니까 이런식으로 날리는건 컴파일 에러가 납니다.. Exception 을 상속받지 않은 다른 class 타입의 객체도 마찬가지고요..
exception 객체를 다른데서 미리 생성해서 쓰건 바로 throw 뒤에 new 해서 쓰건 어쨌건 Exception 을 상속받은 객체가 날라가야 한다는 점만 기억하시면 됩니다
throw 라는건 발생된 exception 을 자기를 호출한 상위 메소드에서 처리하도록 넘긴다는 의미입니다. 따라서 exception 객체가 날라가지 않으면 아무 의미가 없죠..
try 문내에서 발생된 exception 을 자체적으로 처리하려면 catch 구문 내에서 처리하면 되고 따로 throw 를 할 필요가 없습니다. 혹은 메소드 내부에서 1차 처리하고 상위 메소드에서 2차 처리하도록 하기 위해
catch(IOException e) {
..... exception 처리 ....
throw e;
}
이런형태로 코딩할수는 있습니다.. 이 경우도 e 는 이전에 IOException 타입으로 생성된 객체이기 때문에 new 없이 바로 날릴 수 있는겁니다
16/10/17 09:02
수정 아이콘
new를 붙이는건 보통, 프로그램상으로는 에러가 아닌데 업무로직상 에러를 뱉어야 할 경우에 많이 씁니다.
프로그램상으로는 에러가 아니기 때문에 exception 객체를 새로 만드는거죠.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
94195 [질문] [노래] 패션쇼(?) 노래 제목을 찾고있습니다. [4] 기억의습작4871 16/12/03 4871
94194 [질문] 매직마우스 윈도우서 정상 사용가능한가요? [1] 서퍼도리아2079 16/12/03 2079
94193 [질문] [WOW] 와우 친구 초대 받으실 분 계신가요? [3] 삭제됨2741 16/12/03 2741
94192 [질문] 컴퓨터 견적 확인 부탁드립니다 [11] sensorylab2711 16/12/03 2711
94191 [질문] 이사를 했는데 콘센트에 달린 이게 뭘까요? [3] 루시드레인2850 16/12/03 2850
94190 [질문] 갑자기 국회의원들 전화번호가 풀린 이유가 있나요? [5] 더치커피3848 16/12/03 3848
94189 [질문] 비누향 나는 남성향수와 차량방향제 [6] AspenShaker5394 16/12/03 5394
94188 [질문] 인터넷 보험 문의드립니다 XabiAlonso1616 16/12/03 1616
94187 [질문] 스키 잘타려면 하체근육은 필수겠죠? [5] 기다리다3445 16/12/03 3445
94186 [질문] [게임] 바이오쇼크 질문드립니다~ [6] 히스조커4178 16/12/03 4178
94185 [질문] 스키를 타면 원래 다리가 아픈가요? [5] 패스파인더2805 16/12/03 2805
94183 [질문] 친한 동생 경찰공무원 합격 축하 관련 [11] 삭제됨4254 16/12/03 4254
94182 [질문] 청남대 근처 식사할만한 곳 질문글입니다. [1] 삭제됨2552 16/12/03 2552
94181 [질문] 우리나라 바퀴벌레는 총 몇마리일까요? [3] 바이브5161 16/12/03 5161
94180 [질문] 엑셀 한글 파워포인트 영구적으로 구입하고 싶은데요 [5] 아리아리해2538 16/12/03 2538
94179 [질문] 오늘 처음 집회에 나갑니다. 꿀팁 같은 것 있을까요? [11] Robbie3117 16/12/03 3117
94178 [질문] Off-shore 위안화와 On-shore 위안화의 차이? 쿠쿠다스1978 16/12/03 1978
94177 [질문] 새 운동화를 샀는데 발등?발가락?접히는 부분 쪽이 너무아프네요.. [8] 光海16662 16/12/03 16662
94176 [질문] [나눔] 오늘 APEX 오버워치 결승전 중학교사학년2135 16/12/03 2135
94175 [질문] 영화 예매 오픈을 알 수 있는 방법 있나요? [2] 와인하우스3044 16/12/03 3044
94174 [질문] 탄핵 2일, 5일, 9일... 좀 가르쳐 주십시오 정치 고수님들. [4] 바일모2943 16/12/03 2943
94173 [질문] 담배의 타르 함량에 따라 건강에 유의미한 차이가 있나요? [3] 매벌이와쩝쩝이3813 16/12/03 3813
94172 [질문] 웨일 초대장 있으신분 계신가요? [7] 트와이스정연1981 16/12/03 1981
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로