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");
    }
  • 相关阅读:
    "LC.exe" exited with code -1 错误
    GridControl的用法(1)
    oracle建库及plsql建表空间的用法
    sql server还原数据库文件(.bak)常见问题解决办法笔记
    ubuntu下安装deb包
    ubuntu下安装五笔输入法
    ubuntu下安装codeTyphon
    centos7下源码安装lazarus
    后台对Json数据加密、解密
    Http请求纯后台简单实现分页并返回JSON格式
  • 原文地址:https://www.cnblogs.com/james111/p/6607408.html
Copyright © 2011-2022 走看看