Java异常(超详细)

1.异常结构的五个关键字

try---(监视)你认为可能有问题的代码
 catch:---捕获异常对象。解决措施(”提示,警告“)
多重catch块,子类异常类型在前,父类异常类型在后(必须)

finally:关闭资源等
 finally 中的代码是一定会被执行的(不管是正常还是异常)
以下两种情况下,finally不执行:
1.return 不能终止,遇到return后,先执行 fianlly 然后执行return。
2.System.exit(1); fianlly 不执行。

throws:----声明的活。ArithmeticException, AbstractMethodError,ArrayStoreException
        面对一段异常代码:你有几种解决方案:
      1.【积极】 try--catch --finally
      2.【消极】 向上报告: throws


 throw:----抛出的活/制造异常。  throw  new 异常对象(”错误原因“);
* ==="制造一场异常!"--->为了提醒,放大错误!

2.异常的分类

Object类

Throwable类

Err(错误)                Exception(异常)

                                检查异常                运行时异常

3.Error和Exception的区别

Error类,表示仅靠程序本身无法恢复的严重错误,比如内存溢出,动态链接异常、虚拟机错误。

Exception类,由Java应用程序抛出和处理的非严重错误,如所需文件没有找到、零作除数,数组下标越界等。它的各种不同子类分别对应不同类型异常。可分为两类:Checked异常和Runtime异常

Checked异常和Runtime异常的区别

1)运行时异常,包括RuntimeException及所有子类,不要求程序对它们作出处理,如果运行时发生异常,会输出异常的堆栈信息并中止程序执行。 

2)Checked 异常,程序必须捕获或者声明抛出这种异常,否则出现编译错误,无法通过编译。

4.Java异常处理try-catch-finally的执行过程

try-catch-finally程序块的执行流程以及执行结果比较复杂。基本执行过程如下:

程序首先执行可能发生异常的try语句块。如果try语句没有出现异常则执行完后跳至finally语句块执行;如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。catch语句块可以有多个,分别捕获不同类型的异常。catch语句块执行完后程序会继续执行finally语句块。finally语句是可选的,如果有的话,则不管是否发生异常,finally语句都会被执行。

需要注意的是即使try和catch块中存在return语句,finally语句也会执行。是在执行完finally语句后再通过return退出。

5.Error和Exception的区别

【1】位置不同

throw:方法内部

throws: 方法的签名处,方法的声明处

【2】内容不同

throw+异常对象(检查异常,运行时异常)

throws+异常的类型(可以多个类型,用,拼接)

【3】作用不同

throw:异常出现的源头,制造异常。

throws:在方法的声明处,告诉方法的调用者,这个方法中可能会出现我声明的这些异常。然后调用者对这个异常进行处理:

要么自己处理要么再继续向外抛出异常

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值