java 异常:throw throws finally

本文详细介绍了Java中的异常处理机制,包括error与exception的区别,常见异常如StackOverflowError和OutOfMemoryError的原因及处理方法,以及如何使用try-catch-finally结构进行异常捕获。此外还讲解了如何自定义异常。

异常分为error和exception,他们都是throwable的子类。

error由jvm抛出,会导致程序的中断。

  • StackOverflowError
  • OutOfMemoryError
  1.   如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。
  2. 如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemory Error异常。

exception是可以控制的,比如下标越界,除0错误等等。 

10.0/0可以 10/0不可以

  • RuntimeException(运行时异常)
  • IOException

异常的分支体系:

  1. 运行时异常 :Error与RuntimeException。在编译时不会发现,不比处理
  2. 编译时异常: 除了运行时异常之外的都是,需要在编写代码时处理。

添加异常的手段:

1:try{}catch(异常种类){}finally{}

  1. Catch可以有很多个
  2. 捕获的异常需要从小到大
  3. 引申***:final:特征修饰符,变量,属性,方法,类; finally处理异常try后面,可有可无。 finalize :Object类中一个protected(受保护)的方法,当对象没有任何引用指向的时候---会被GC回收;当对象回收的时候默认调用finalize()方法,若要看到回收结果可以调用重写。
  4. 处理异常放在方法内部,可能有小问题:下面:①没有异常的时候会执行finally之后返回try里面的值。②:有异常的时候会返回catch 然后finally,然后return最后的值,即try后面的不执行。

深信服笔试题:try{return ;}chtch(){}finally{ } return ;。

2:throws抛出

  1. 只能在方法上抛出,属性不可以
  2. 方法,构造
  3. 可以抛出不止一个异常

3:自己创建异常

  1. 描述一个异常的类
  2. 继承:RuntimeException ----> 运行时异常,不需要自己处理

如果是继承Exception  ---> 编译时异常(必须添加处理手段)

  1. 创建一个当前自定义异常的对象,通过throw关键字,主动产生异常
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值