Java异常

异常

  1. 出现异常,记得查api 找出错误。
    Error: jvm出错,系统崩溃等,一般是编译错误,我们不能处理。
    Exception:异常,程序不正常情况,我们自己处理。
    都继承于throwable类
    常见的exception:NullPointException 空指针(引用)异常。等等
  2. 处理异常
    异常是不能异步传递的。
  3. 抛出异常,交给该方法的调用者(throws)来处理,
  4. 使用try-catch 来自己处理。
    格式:
    try{
    可能出现的异常语句
    }
    catch(捕获异常类型 e){
    出现异常的处理,记录打印,继续抛出 e.getmessage();e.tostring()异常的信息
    //几乎必用 用的比较多的是printStackTrace() 这个信息最详细 包括异常位置。
    }finally{
    最终都会执行的代码。例如关闭资源。除非jvm在前面退出。否则一定执行。
    }
    一个catch只能捕获一种异常,多个异常使用多个catch.而且代码一瞬间只能出现一个异常。
    异常的分类:
    编译时期异常 :编译时的检查出来的异常
    运行时期异常 :运行时期检查出来的异常(可处理,可不处理 例如:RunTimeException及其子类)
    在这里插入图片描述
    Try catch finally执行顺序:
    )当try没有捕获到异常时:try语句块中的语句逐一被执行,程序将跳过catch语句块,执行finally语句块和其后的语句;
    2)当try捕获到异常,catch语句块里没有处理此异常的情况:当try语句块里的某条语句出现异常时,而没有处理此异常的catch语句块时,此异常将会抛给JVM处理,finally语句块里的语句还是会被执行,但finally语句块后的语句不会被执行;
    3)当try捕获到异常,catch语句块里有处理此异常的情况:在try语句块中是按照顺序来执行的,当执行到某一条语句出现异常时,程序将跳到catch语句块,并与catch语句块逐一匹配,找到与之对应的处理程序,其他的catch语句块将不会被执行,而try语句块中,出现异常之后的语句也不会被执行,catch语句块执行完后,执行finally语句块里的语句,最后执行finally语句块后的语句;
    我们在使用和关闭某些资源的时候可能需要处理异常。在java7中有一个特性可以自动关闭异常。
  5. 抛出异常
  6. Throw:
    运用在方法内部,抛出一个异常对象。当一个方法内发生异常,我们就可以返回一个异常对象,在catch中继续向上抛出, return是返回一个值 而throw就是返回他的错误信息,
  7. Throws
    运用在方法声明之上,用于表示该方法不处理异常,而是提醒该方法的调用者来处理或者抛出异常。
    throws Exception 抛出异常给方法的调用者 都不处理 最后会给JVM处理,打印异常的跟踪栈信息。比如runtime异常等就是交给JVM处理。注意,在方法的重载中,子类不能抛出新的异常
  8. 自定义异常类:在开发中根据自己的需要自定义异常类。
  9. 最后我们的异常设计的时候注意根本原因和异常链。注意异常使用的原则
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值