• 异常


     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
  • 相关阅读:
    js获取当前时间
    jQuery动画
    label用js,jquery取值赋值,以及怎么在后台取值
    jquer 事件,选择器,dom操作
    linq分页组合查询
    linq的简单增删改查
    内置对象session ,cookic,Application,ViewState
    listview控件及其与数据库的连接
    Mybatis 学习
    UML类图的6中关系
  • 原文地址:https://www.cnblogs.com/ivy-xu/p/5295898.html
Copyright © 2020-2023  润新知