如果在 定义的方法中 会有语句抛出异常 而你又不希望在这个方法体内对此异常进行处理,可以使用throws在声明方法的时候,同时声明他可能会跑出的异常。比如:
public void go() throws SQLExceptions
{
//...
Connection conn = ds.getConnection();
//...
}
本来ds.getConnection()将可能会抛出SQLException,但现在使用throws 在方法名处声明了,所以在方法体中就不需要 try/catch 块来处理SQLException 了.
例子2:
class test_throws
{
public static void main(String args[]) throws IOException // { //main方法内 可能会抛出IOException异常
//main方法并没有处理该异常,而是把它丢出去由调用它的人来处理(也就是给jvm处理)
//....
}
}
比喻:
程序是老板让你做的事, 异常就是做事过程中遇到的问题, 如果问题你能够处理, 那么你可以自己处理, 如果不能处理的问题, 定义出来, 抛给老板. throws就是抛给老板的问题了。
public void a() throws 丢给老板的Exception{
try{
//做老板给你的事情
} catch(你能处理的Exception e){
//处理你能解决的问题
} finally {
//不管问题有没有发生, 都要处理的工作
}
}
如果 一个 方法里有多个异常,多个异常之间,用 逗号 隔开就ok了;
例子4:
public void doClick(View v) throws 异常1, 异常2, 异常3, 异常4{
//产生异常1的语句
//产生异常2的语句
//产生异常3的语句
//产生异常4的语句
}