关于JAVA项目中的常用的异常处理情况

     Java异常处理的几个原则如下。
      1)不要丢弃异常,捕获异常后需要进行相关处理。如果用户觉得不能很好地处理该异常,就让它继续传播,传到别的地方去处理,或者把一个低级的异常转换成应用级的异常,重新抛出。
      (2)catch语句应该指定具体的异常类型。不要把不该捕获的异常也捕获了
      (3)在finally里面释放资源。如果finally里面也会抛出异常,也一样需要使用try..catch处理。
      (4)不要把大量的代码塞在try...catch块里面,分离各个可能出现异常的语句并分别捕获异常。
      (5)由于异常可能导致输出的数据不完整,因此用户需要作出相应处理,至少应该提示该数据的不完整

一:Exception异常层次结构的根类

解决方法:

二:RuntimeException许多java.lang异类的基类

解决方法:1.在eclipse里面,project->Generate javadoc菜单,在第三个对话框的Extra Javadoc options文本框里面加上 -encoding UTF-8 参数之后,此现象就消失了

                  2.临时)在控制面板中将区域与语言选项中,把当地语言设为英语

                  3.将要输入文件的东西,输入后台的数据改成全英文,也可以解决。

三:ArithmeticException算术错误情形

解决方法:仔细阅读程序中是否有涉及到算术问题,算术中是不是未考虑到除0的情况。

四:IllegalArgumentException方法接收到非法参数

解决方法:1.可能是接收到的参数非法,或者程序源代码没有错误的话就是配置的问题才会导致数据传输不过来,可能是配置文件的问题,也有可能是环境配置的问题,例如你的文件路径跟你从svn上的路径不对也会导致这个问题。

五:ArrayIndexOutOfBoundException数组大小小于或大于实际的数组大小

解决方法:仔细阅读源程序有关于涉及到数组的定义和使用,有没有出现数组的下标小于数组大小或者数组下标大于等于数组大小

六:NullPointerException尝试访问NULL对象成员

解决方法:这个异常一般是方法内部成员没有赋值造成的。使用debug模式查看,会发现该成员的值显示的是Null.对null成员做任何操作都会报这个异常错误。所以在做之前需要做非空判断。

七:ClassNotFoundException不能加载所需的类

解决方法:ClassNotFoundException异常后面跟的就是找不见的类路径。可以通过“CTRL+SHIFT+T”,之后再弹出的对话框中输入类路径,看看此类是否存在。
如果存在的话,直接在报错的类中通过“import 类路径”的形式引入即可。
如果不存在的话,那么只能是去创建此类,或者引入相应的jar包进行解决了。

八:NumberFormatException数字转化格式异常

解决方法: 主要原因是将用户提交的内容转换为整数或者浮点数时用户输入了其它非法字符。在需要进行转换的地方使用try/catch块捕获此异常然后提示用户输入合法数据。

                   也可以看下边的错误堆栈,找出自己写的类在哪一行出现错误,然后定位的找到错误的行,在什么时候执行哪一条语句出现的错误,就可以相应的用try/catch捕获解决解决。

九:FileNotFoundException找不到文件

解决方法:1.可能是父路径缺乏,或者文件没有创建。可以加一个判断。

                  2.文件没创建

       String localPath =path+name;    

      File file =new File(localPath);

            try {

//假如文件不存在,需创建

                if(!file.exists()){

                file.createNewFile();

            } 

特别注意的是文件创建的是.TXT文本,要在文件名或者文件目录填写的时候,将文件名后缀加上,将.TXT加上。

十:EOFException文件结束,EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致异常。

出现ArithmeticException异常,由于出现了除0的现象而导致的。

 

 

当有多层嵌套的finally时,异常在不同的层次抛出 ,在不同的位置抛出,可能会导致不同的finally语句块执行顺序。

Finally不一定会执行。

原文地址:https://www.cnblogs.com/zjl-0217/p/9943976.html