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");
    }
  • 相关阅读:
    教准备租房的同学如何避开坑!
    mvc3中controler和view之间的数据传递
    WebMail发送邮件
    mvc Razor视图语法与Aspx视图语法对比
    SQL Server sql分页查询
    WCF之一
    C++总结笔记(一)抽象、多态、继承
    Perl脚本学习经验(二)常用命令举例
    makefile学习经验(四)编译生成动态库文件(方式二)
    makefile学习经验(三)编译生成动态库文件(方式一)
  • 原文地址:https://www.cnblogs.com/james111/p/6607408.html
Copyright © 2011-2022 走看看