• Java checked异常 和 RuntimeException


    RuntimeException

    RuntimeException是非常特殊的子类,你可以不用throw和throws。
    哪怕你throw了,也没必要throws,即使你throws了,调用者也没必要try-catch。
    
    
    之所以不用在函数上声明,是因为不需要让调用者处理,当该异常发生,希望程序停止,
    因为在运行时,出现了无法继续运算的情况,希望程序停止后由程序员对代码进行修正。
    
    自定义异常时,如果该异常的发生,无法继续进行运行,就让自定义异常类继承RuntimeException
    
    
    ArithmeticException - 算术运算中,被0除或模除。
    
    ArrayIndexOutOfBoundsException - 数组越界访问。
    
    BufferOverflowException - 缓冲区溢出异常。
    
    NullPointerException - 试图访问一空对象的变量、方法或空数组的元素。
    
    ArrayStoreException - 数据存储异常,写数组操作时,对象或数据类型不兼容。
    
    ClassCastException - 类型转换异常。
    
    IllegalArgumentException - 方法的参数无效。
    
    NumberFormatException - 数据格式异常,试图把一字符串非法转换成数值(或相反)
    
    IllegalThreadStateException - 试图非法改变线程状态,比如试图启动一已经运行的线程。
    

    运行时异常和ckecked异常的区别

    对于异常分两种:检查异常和非检查异常(运行时异常)
    
    检查异常 : 
        编译时被检测的异常(throw后,方法有能力处理就try-catch处理,没能力处理就必须throws)。
    
    运行时异常 : 
        编译时不被检查的异常(运行时异常。RuntimeException及其子类)。
    
    
    1、机制上
    
    主要表现在以下两个方面 : 
    (1)如何定义方法 
    (2)如何处理抛出的异常
    
    运行时异常:
        不需要用 throws 声明抛出异常对象所属类,也可以不用 throw 抛出异常对象或异常引用。
        对于调用该方法,也不需要放于 try-catch 代码块中。
        (如果你捕获它,就会冒这么一个风险:程序代码错误被掩盖在运行中无法察觉)
    
    检查异常: 
        一旦用 throw 抛出异常,如果当前方法可处理异常,那么直接在该方法内用try-catch去处理。
        如果当前方法不具备处理该异常的能力,那么就必须在参数列表后方法体前用 throws 声明异常所属类,
        交给调用该方法的调用者(方法)去处理 。
    
    
    2、逻辑上
    
    从逻辑的角度来看,checked异常 和 RuntimeException 有着不同的使用目的:
        检查性异常用来指示一种调用方能够直接处理的异常情况(例如: 用户输入错误,程序可以直接捕获并处理,提示用户输入错误), 
        而 RuntimeException 是用来指调用方本身无法处理或回复的程序错误
        (例如,你封装个库给别人用,当别人调用你库中某个方法是,需要传入某些参数,
        如果用户传入的参数不合法,你自己没办法处理,那么你抛出的就应该是运行时异常)。
    
    
    ckecked异常包括:
        IOException
        SQLException
        ClassNotFoundException
        InterruptedException(中断异常-调用线程睡眠时候)
        DataFormatException
        FileNotFoundExcetion 
    

    Exception一自定义异常

    https://www.cnblogs.com/loveer/p/11314089.html

  • 相关阅读:
    vi
    head
    uniq
    sort
    所谓静态绑定
    债务
    不确
    tar
    VMWare虚拟系统上网设置 及 三种模式详解
    awk
  • 原文地址:https://www.cnblogs.com/loveer/p/11666601.html
Copyright © 2020-2023  润新知