zoukankan      html  css  js  c++  java
  • 异常

     1 异常:程序运行中,异常出现,如果不进行合理处理,程序中断执行
     2 
     3 异常全部处理完毕,就执行try-catch-finally,之后的语句
     4 若是只catch部分异常,就不会执行try-catch-finally,之后的语句
     5 
     6 先写异常的子类,再写异常的父类【先写小范围的异常,再写大范围的异常】
     7 虽然直接捕捉Exception比较分方便,但是异常都是按照☉同样的一种方式☉进行处理
     8     但是有些要求严格的项目,异常一定要分开处理
     9     
    10 异常的处理
    11     1.★try★,catch,finally
    12     try...catch,    try...catch(可以多个)...finally,    try...finally
    13 范例:
    14 public class ExceptionDemo {
    15     public static void main(String[] args) {
    16         System.out.println("===========除法计算开始=========");
    17         try {
    18             int x = Integer.parseInt(args[0]);
    19             int y= Integer.parseInt(args[1]);
    20             System.out.println("除法计算:" + (x / y));
    21         【★只有一个catch,只能处理一个异常★ 
    22             如果存在其他没有处理的异常,依次会导致程序中断执行】
    23         } catch (ArithmeticException ex) {
    24             ex.printStackTrace();//打印完整的异常信息
    25         } finally{ //不管异常是否catch处理完,都执行finally(除了一种情况,存在System.exits())
    26             System.out.println("##不管是否出现异常都执行!##");
    27         }
    28         
    29         【★如果异常没有全部catch,那么这里就不会执行finally后面的代码!!!★】
    30         System.out.println("===========除法结束============");
    31     }
    32 }    
    33 
    34     2.throws[方法声明],当前方法出现异常后交给该方法被调用的地方进行处理
    35 范例:
    36 public class ThrowsDemo {
    37     /**
    38      * 由于存在throws,那么表示此方法里面产生的异常交给被调用处(如,main函数)处理
    39      * @param x
    40      * @param y
    41      * @return
    42      * @throws Exception
    43      */
    44     public static int div(int x,int y)throws Exception{
    45         return x / y;
    46     }
    47     
    48     public static void main(String[] args){
    49         //处理方法div()里面的异常
    50         try {
    51             System.out.println(ThrowsDemo.div(10, 2));
    52         } catch (Exception e) {
    53             e.printStackTrace();
    54         }
    55     }
    56 }
    57 
    58     3.throw[自定义异常],手工抛出一个异常,并实例化异常
    59     
    60 public  class AddException extends Exception{
    61     public AddException(String msg){
    62         super(msg);//显示是自定义msg的内容,如果没有继承父类的带参构造方法,不显示msg内容
    63     }
    64     
    65     public static void main(String[] args){
    66         int num = 20;
    67         try {
    68             if (num > 10) {
    69                 throw new AddException("数值过大!");//自定义异常
    70             }
    71         } catch (Exception e) {
    72             System.out.println("该程序结束");
    73             e.printStackTrace();
    74         }
    75     }
    76 }
    77 
    78 Throwable
    79     Error;Exception
    80         RuntimeException;CheckedException
    81             ArithmeticException,NullPointerException,NumberFormatException,ArrayIndexOutOfBoundsException;ClassCastException
    82 Error: 此时的程序没执行,无论用户怎样处理,都处理不了
    83 Exception: 程序运行时产生的异常,用户可以处理(后异常处理)
    84 RuntimeException与CheckedException区别
    86 CheckedException定义的异常◆必须◆被处理,而RuntimeException的异常可以★选择性处理★
    87
  • 相关阅读:
    kubernetes yaml文件格式
    docker 镜像上传至私有仓库
    Docker Compose编排容器
    jenkins+gitlab+ansible+dockerfile+k8s自动发布代码
    kubernetes 命令行
    关于HDFS的读写流程
    vue中watched属性
    app中rem算法
    vue使用中的随笔
    react 表单获取多个input
  • 原文地址:https://www.cnblogs.com/ivy-xu/p/5295898.html
Copyright © 2011-2022 走看看