zoukankan      html  css  js  c++  java
  • Java 异常与错误

    异常

    • 定义:

      软件程序在运行过程中,非常可能遇到意外问题,就叫异常(Exception),例如文件找不到,非法参数,网络连接失败等;

    • 异常的分类:

      • 检查性异常:

        用户错误或问题引起的异常,例如:打开一个不存在的文件

      • 运行时异常:

        运行时被忽略的异常

      • 错误(Error):

        错误不属于异常,脱离程序员控制的问题,例如:栈溢出等

    • 异常体系结构:

       

      Java异常可以当做对象来处理

    • Java异常处理机制:

      • 处理异常

        • 捕获异常

          例如:

          public class Demo{
             public static void main(String[] args){
                 int a = 6,b = 0;
                 try{
                     System.out.println(a/b);
                }catch(ArithmeticException e){
                     System.out.println("程序发生错误,含有非法参数,除数不能为零");
                     //e.printStackTrace(); 打印程序捕获到的错误信息
                }finally{
                     System.out.println("程序无论是否发生异常,都会执行finally内的语句");
                }
            }
          }

          注意:程序中可以用多个catch来捕获,但是有层层递进的关系,捕获需遵循从小到大的递进关系;

        • 抛出异常

          方法中处理不了这个异常可以抛给上一级,由上一级捕获处理

          public double multiplies(double a,double b) throws ArithmeticException{ //抛出异常
             if(b == 0 ){
                 throw new ArithmeticException(); //主动抛出异常,在方法中使用
            }
             return a/b;
          }

           

      • 自定义异常

        • 继承Exception类

          public class demo extends Exception {
             //自定义异常代码,一般还需要重写toString方法
          }

           

    • 总结:

      • 处理运行时异常,采用逻辑去合理规避同时辅助try-catch处理

      • 在多重catch块后面,可以加一个catch(Exception)来处理可能被遗漏的异常

      • 对于不确定的代码,也可以加上try-catch,处理潜在的异常

      • 尽量处理异常,切记只是简单的调用printStackTrace()去打印输出,增加一些处理异常的代码

      • 具体如何处理异常,需根据实际需求和异常类型去决定

      • 尽量添加finally语句块去释放占用的资源

    每个NB的人物背后都有一段苦B的岁月,只要像SB一样坚持,就能变得NB
  • 相关阅读:
    Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
    XML学习笔记(2)--dom4j操作XML
    坦克大战(版本2.5-版本2.9)
    坦克大战(版本1.7-版本2.4)
    坦克大战(版本1.0-版本1.6)
    坦克大战(版本0.1-版本0.9)
    JavaSE聊天室
    HTML+CSS+JS学习总结
    JDBC学习笔记(10)——调用函数&存储过程
    VS工程的相对路径写法
  • 原文地址:https://www.cnblogs.com/liangls/p/12753627.html
Copyright © 2011-2022 走看看