2011. 12. 9. 03:09ㆍprogramming/java
throw가 예외를 발생시키는 것, throw도 throws도 예외를 던지는 것.
throw는 메소드내에서 상위 블럭으로 예외를 던지는 것.
throws는 현재 메소드에서 상위 메소드로 예외를 던진다.
throw는 억지로 에러를 발생시킬때도 사용되지만 현재 메소드의 에러를 처리한 후에
상위 메소드에 에러 정보를 줌으로써 상위 메소드에서도 에러가 발생한 것을 감지할수 있습니다.
throws는 메소드나 생성자를 수행할 때 발생하는 exception을 선언할 때 사용하는 keywrod
throws는 예외를 전가시키는 것.
다시 말해 예외를 자신이 처리하지 않고, 자신을 호출하는 메소드에게 책임을 전가 하는 것.
throw는 실제로 exception을 throw할 때 사용하는 keyword입니다.
throw는 강제로 예외를 발생시키는 것
throws는 전가이고
throw 는 프로그래머의 판단에 따른 처리이다.
public void doSomething() throws Exception
{
//...
if (...) {
throw new Exception();
}
//...
}
1. throws
- 메소드를 정의할 때 throws 예약어를 시그내처에 추가하면 그 메소드를 호출하는 곳에서 예외 처리를 해야 한다.
- Function throws SomeException이라는 문장을 생각하면 이해가 쉽다. Function이 SomeException 예외를
던진다는 뜻이므로 Function을 사용하는 곳(호출하는 곳)을 try 블록으로 감싸준다.
01.
class
Test {
02.
public
static
void
f()
throws
ArithmeticException {
03.
int
a =
0
;
04.
a =
10
/a;
05.
}
06.
07.
public
static
void
main(String[] args) {
08.
try
{
09.
Test.f();
// 이 함수가 예외를 던진다.
10.
}
catch
(Exception e) {
11.
System.out.println(
"main() 메소드가 예외를 잡아서 처리한다: "
+ e);
12.
}
13.
}
14.
}
2. throw
- 강제로 예외를 발생시키는 경우에 사용한다.
- throw 예약어 뒤에는 java.lang.Throwable 클래스를 상속받은 자식 클래스의 객체를 지정해야 한다.
01.
class
Test {
02.
public
static
void
main(String[] args) {
03.
try
{
04.
throw
new
Exception();
05.
}
catch
(Exception e) {
06.
System.out.println(e);
07.
}
08.
}
09.
}
'programming > java' 카테고리의 다른 글
[JAVA][Eclipse] 한번에 환경설정하기! (0) | 2015.08.28 |
---|---|
[JAVA] 한번에 환경설정하기!!! (4) | 2015.08.28 |
자바 다형성 (0) | 2011.10.31 |
[Java] String 클래스 에서 주로 사용하는 메소드 (0) | 2011.06.04 |
[Java] charAt(), substring(), indexOf(), length() (0) | 2011.06.04 |