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
  • 相关阅读:
    Spring AOP + Redis 实现针对用户的接口访问频率限制
    Flutter 圆形透明 Loading 弹窗
    VUE 自定义组件的双向数据绑定 和替代钩子
    10个前端技巧
    前端中的数据库
    cors 跨域问题
    promise解决回调地狱问题
    VUE框架JS组件的封装 --Vue.extend
    HBuilderX 用夜神模拟器运行vue项目
    vue关于axios 拦截器的使用
  • 原文地址:https://www.cnblogs.com/liangls/p/12753627.html
Copyright © 2011-2022 走看看