日期:2014-05-18  浏览次数:20711 次

抛出异常的问题
在方法的声明中,在方法的名称和参数列表后的如果有throws xxxException语句。
是不是在该方法体内一定要有throw xxxException语句。
例如:DriverManager类的getConnection()方法。其声明为:
public static Connection getConnection(String url)throws SQLException
是不是在该方法体内一定有throw SQLException
这条语句。


------解决方案--------------------
对,不管是直接还是间接。
------解决方案--------------------
同意楼上
------解决方案--------------------
不要。
已经抛了为什么还要在方法论体内抛呢,多此一举
------解决方案--------------------
? 我做的时候 要么申明方法上面抛出

要么就在方法体里面抛出异常


2个只用抛出一个就好了


记得 +分 +分
------解决方案--------------------
不需得.方法体内不需要有throw SQLException了,
那个代码得意思就是:我的方法内得代码可能在执行得时候抛出这个异常,这个异常我方法不处理.抛给上层处理.
------解决方案--------------------
不需要啊!throws SQLException 这个是将你方法体中的异常向外边抛!
如果你方法体后边有throws SQLException 
说明你方法里边有要处理的异常!
下边2种情况如果有一个存在的话方法后边都可以写throws SQLException 
1:比如你定义数据库连接呀,定义文件就会有异常抛出
2:throw SQLException 这句是表示你手动抛出异常~!

如果方法里边2种情况都没的话你写throws SQLException 编译器就会抱错
------解决方案--------------------
除非要抛另外不同方法体定义时声明的异常才需要在方法体内另外定义,如果是同一种异常,没必要弄两次吧。例如,public static Connection getConnection(String url)throws SQLException ,方法体定义的时候已经声明了抛SQL异常,如果在方法处理过程中需要抛IO异常的话,那就需要在方法体内抛出IO异常了;如果都是抛SQL异常,就没必要重新声明了。
------解决方案--------------------
声明该方法会抛出异常可以方便接口的使用者明白这个接口的含义以便更好地处理方法抛出的异常和代码的调试,但在方法体内可以不抛出异常。两者并不矛盾。