zoukankan      html  css  js  c++  java
  • java异常

    万恶之源——Throwable,所有的异常都继承自Throwable接口
    Throwable有两个儿子,一个是Error,一个是Exception,Error是系统错误,将直接导致程序崩溃(如内存溢出,虚拟机异常,线程死锁),例如工厂的机器设备坏掉,线路断掉无法通电等,Exception仅仅是程序异常,例如工厂的原材料不够了,导致整个工厂无法再正常运转。
     
    Exception也有两个儿子,一个是RuntimeException(运行时异常,也称非检测性异常,即便有异常,在编译的时候也不会报错,而是在程序动态运行时才会报错),一个是CheckedException(检测性异常,在编译时就必须手动抛出异常才行)。
     
    RuntimeException由java虚拟机自动抛出并自动捕获,常见的有:类转换异常,数组越界异常,空指针异常,算数异常,InputMismatchException等。
     
    CheckedException 常见的有ClassNotFindException,IOException,SQLException等。
     
    如果出现异常,会阻止当前方法继续执行,程序必须捕获异常,如果不捕获异常就直接报错。一旦捕获异常,就会执行catch块中的代码,程序继续执行。如果当前方法没有捕获,则往外抛出,由调用它的方法进行捕获。
     
    如果try语句块里面抛出多种类型的异常,则需要多重catch语句
    try{
    }catch(){
    }catch(){
    }finally{
    }
    捕获异常的顺序很重要,先捕获子类,最后捕获父类
    finally语句块在try块的return语句执行完之后,返回给调用者之前执行,也就是先执行return语句,但是不返回,而是先去执行finally中的语句,执行完之后再返回return的值。
     
    throws: 向上级抛出异常
     public void foo() throws Exception{
    }
     
    throw:将产生的异常抛出
    if(n=0){
             throw new Exception("除数不能为0");
    }
  • 相关阅读:
    my15_ mysql binlog格式从mixed修改为row格式
    my14_mysql指定时间恢复之模拟从库
    my13_mysql xtrabackup备份的时间点
    必知必会的图论算法
    leetcde37. Sudoku Solver
    leetcode36. Valid Sudoku
    leetcode52. N-Queens II
    leetcode51. N-Queens
    First Missing Positive
    Maximum Gap
  • 原文地址:https://www.cnblogs.com/james111/p/6607408.html
Copyright © 2011-2022 走看看