java异常

  • 异常,不可避免
    • 执行中发生的不正常情况(开发中语法和逻辑错误不算)
  • Throwable类,异常根父类
    • Public String getMessage() //打印错误信息
    • public void printStackTrace() //打印异常抛出轨迹。
  • 机制,异常向上抛出,等待处理
  • java健壮性,鲁棒性
    1. 异常处理
    2. 垃圾回收
    3. 强类型语言
    4. 地址不允许运算,避免指针异常
  • 程度分类
    • error,java虚拟机无法解决的严重问题。处理不了,不进行代码处理
    • exception,其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性代码进行处理
      • 空指针
      • 试图读取不存在文件
      • 类型错误
      • 越界
      • 除零
  • 处理方式分类
    • 受检异常:在程序中必须处理检查的异常(必须写异常处理处理语句)
      • Exception其子类,RuntimeException及子类除外,
    • 非受检异常: 在程序中不是必须检查处理的异常
      • Error 及子类,严重错误,jvm无法处理
      • RuntimeException 及其子类,轻微错误,比如除零异常
  • 异常处理方法
    • 捕获 try{ 可能出现的异样语句 }catch (异常类型 对象引用){异常处理语句}finally{语句块} //参数类型为异常选择
      • try代码块时待捕获异常代码块
      • catch代码块是根据错误类型选择处理方式的代码块
      • finally是必须执行的代码块
        • finally和return,finally若未执行则,拦截return,执行完finally之后再执行return
        • 注return返回的值是储存在临时变量里的值
    • throw语句可以用来从方法中主动抛出
      • 一旦抛出异常,此方法就提前出栈,并不带着正常的返回值,而是带着需要处理的异常
      • 方法签名添加警告(throws 异常名)
      • 方法体用throw抛出异常
      • main方法中一般不要抛出异常,一旦抛出,程序崩溃,入口方法适用
      • 一般方法尽量抛出异常,交给上层处理
    • 捕获再抛出
      • 捕获到异常之后使用自定义异常包装之后抛出
      • 更加统一,可以同一的代码块处理
  • 自定义异常
    • 提供两个构造器
    • 继承exception的异常时受检异常,必须处理
    • 使用
      • 方法签名加异常警告,(throws xxxxExcepton)
      • 方法中使用throw来抛出异常
    • 提醒使用者必须处理这个异
//自定义异常举例
class DividedByZeroException extends Exception {
	//构造器,错误信息
	public DividedByZeroException(String message) {
		super(message);
	}
	//构造器,接收异常,做包装
	public DividedByZeroException(Throwable cause) {
		super(cause);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值