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");
    }
  • 相关阅读:
    Django model 常用方法记录
    程序员的注意事项
    硬件天使的使用
    你是否应该成为一名全栈工程师?
    web技术
    6个处理上面代码异味的重构方法(手法)
    git 命定
    ie console报错
    apache 省略index.php访问
    myisam和innodb的区别
  • 原文地址:https://www.cnblogs.com/james111/p/6607408.html
Copyright © 2011-2022 走看看