• 异常02


     1 /*
     2  *  异常分为编译异常和运行时期异常
     3  *    编译异常: 调用了抛出异常的方法,不处理编译失败  (try  throws)
     4  *    运行异常: 抛出的异常是RuntimeException类,或者是他的子类
     5  *  
     6  *  运行异常的特点:
     7  *     方法内部抛出的异常是运行异常, new XXXException
     8  *     方法的声明上,不需要throws语句,调用者,不需要处理
     9  *     设计原因:
    10  *        运行异常,不能发生,但是如果发生了,程序人员停止程序修改源代码
    11  *        
    12  *        运行异常: 一旦发生,不要处理,请你修改源代码, 运行异常一旦发生,后面的代码没有执行的意义
    13  */
    14 public class RuntimeExceptionDemo {
    15     public static void main(String[] args) {
    16             double d = getArea(1);
    17             System.out.println(d);
    18     }
    19     
    20     /*
    21      *  定义方法,计算圆形的面积
    22      *  传递参数0,或者负数,计算的时候没有问题
    23      *  但是,违反了真实情况
    24      *  参数小于=0, 停止程序,不要在计算了
    25      */
    26     public static double getArea(double r){
    27         if(r <= 0)
    28             throw new RuntimeException("圆形不存在");
    29         return r*r*Math.PI;
    30     }
    31     
    32     
    33     public static void function(){
    34         int[] arr = {1,2,3};
    35         //对数组的5索引进行判断,如果5索引大于100,请将5索引上的数据/2,否则除以3
    36         //索引根本就没有
    37         if(arr[5] > 100){
    38             arr[5] = arr[5]/2;
    39         }else{
    40             arr[5] = arr[5]/3;
    41         }
    42     }
    43 }
     1 /*
     2  * Throwable类中的方法
     3  * 三个方法,都和异常的信息有关系
     4  *     String getMessage(); 对异常信息的详细描述
     5  *     String toString();   对异常信息的简短描述
     6  *     void printStackTrace(); 将异常信息追踪到标准的错误流;虚拟机JVM的默认调用方法;推荐用
     7  */
     8 public class Demo03 {
     9     public static void main(String[] args) {
    10         try {
    11             function();
    12         } catch (Exception e) {
    13             //System.out.println(e.getMessage());
    14             //System.out.println(e.toString());
    15             e.printStackTrace();
    16         }
    17     }
    18     public static void function()throws Exception{
    19         throw new Exception("异常了");
    20     }
    21 }

    自定义异常

     1 /*
     2  * 自定义异常
     3  *     继承Exception,或者继承RuntimeException
     4  *     构造方法,super将异常信息传递给父类
     5  */
     6 public class Demo04{
     7     public static void main(String[] args) {
     8         System.out.println(getAvg(99,-45,75));
     9     }
    10     public static int getAvg(int...source){
    11         int sum=0;
    12         for(int s:source){
    13             if(s<0)
    14                 throw new fushuException("负数异常!"+s);
    15             sum += s;
    16         }
    17         return sum/source.length;
    18     }
    19 }
    20 class fushuException extends RuntimeException{
    21     public fushuException(String s){
    22         super(s);
    23     }
    24     public fushuException(){}
    25 }
  • 相关阅读:
    SAP MM 采购发票上的金额小差异
    SAP MM 物料号到物料的库存转移过账里的差异
    SAP MM 采购附加费在收货以及发票过账时候的会计分录
    SAP MM 移动平均价的商品发票价格和采购订单价格差异的处理
    WPF 使用 VisualBrush 在 4k 加 200 DPI 设备上某些文本不渲染看不见问题
    dotnet 写一个支持层层继承属性的对象
    dotnet OpenXML 读取 PPT 内嵌 xlsx 格式 Excel 表格的信息
    WPF 在 .NET Core 3.1.19 版本 触摸笔迹偏移问题
    linux下将编译错误输出到一个文本文件
    浮点型(FLOAT)与CHAR型转换
  • 原文地址:https://www.cnblogs.com/Nelsoner/p/6707282.html
Copyright © 2020-2023  润新知