java-关于try catch finally用法

来源:互联网 发布:sql添加数据语句 mdb 编辑:程序博客网 时间:2024/05/29 18:33

背景:
我们经常在开发中使用到的抛异常问题,一般的朋友嫌麻烦,直接将异常写在方法名上,采用throws Exception,这样最简单,把所有的异常全部丢出去了。这么做很简单,并且我接触到的很多系统,都是在前端把校验写好,再将非常准确的数据传入后台,避免出现错误,所以这样写法就会经常出现。但是在某些情况下,我们不得不使用try..catch方法来进行错误提示,因为并没有前端的控制,或则比如连接网络的api,当网络断了,即使数据正常也会报错,那么不采用catch获取的话,使用人员无法得知错误。

基本知识:

1、将预见可能引发异常的代码包含在try语句块中,这个其实ide会自动提醒。修改成try的形式,或则直接throws Exception。
2如果发生了异常,则转入catch的执行。
3、finally是不管发生了什么,最后都会执行的语句。一般是拿来关闭某些操作,比如打开的数据库在finally进行关闭,或则输入输出流等。注意:没有catch的情况下,一定要有finally

try {
String aString = pwdField.getText().replace("\\", "/");
//System.out.println(aString+"=====");
Youhua aYouhua = new Youhua();
if (aYouhua.run("XX", id.getText(),pw.getText(), aString)==1) {
JOptionPane.showMessageDialog(null, "发送成功");
}
}
catch (FileNotFoundException e2) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "请选择excel文件");
}
catch (OfficeXmlFileException e2) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "请选择2003版本的xls文件");
}
catch (AuthenticationFailedException e2) {
// TODO: handle exception
JOptionPane.showMessageDialog(null, "用户密码错误");
}
catch (Exception e1) {
// TODO Auto-generated catch block
//JOptionPane.showMessageDialog(null, "账号密码错误或是excel文件下有空白内容或选择的文件不是excel文件");
JOptionPane.showMessageDialog(null, "已被对方邮箱屏蔽,请稍后再试");
}

对于某些类的方法会报错什么样的Exception。我也没有什么好办法来提前获知(如果对于某个方法很熟悉,那么会知道他有什么样的Exception异常,那么直接写就行),如果读者有什么办法提前获知,类似于异常大全的手册请留言,让我学习下,感激不尽。那么我对于这样异常命的得知,是通过Console控制台,当程序报错,我就复制报错的Exception,放入catch中,并进行相应的错误提示。
我这个办法简单暴力。如果有更好办法请告诉我下啊。十分感谢。
0 0