zoukankan      html  css  js  c++  java
  • 异常处理

    • 异常,不可避免
      • 执行中发生的不正常情况(开发中语法和逻辑错误不算)
    • Throwable类,异常根父类
      • Public String getMessage() //打印错误信息
      • public void printStackTrace() //打印异常抛出轨迹
    • 机制,异常向上抛出,等待处理
    • java健壮性,鲁棒性
      • 异常处理
      • 垃圾回收
      • 强类型语言
      • 地址不允许运算,避免指针异常
    • 程度分类
      • 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);
    	}
    }
    
  • 相关阅读:
    cocos2dx的发展的例子2048(加入动画版)
    Hibernate操作Clob数据类型
    json级联城市
    Ubuntu Linux 永山(mount)分
    C++出现计算机术语5
    Cocos2d-x 3.0 红孩儿私人义务教育
    大页(huge pages) 三大系列 ---计算大页配置参数
    EJB_消息驱动发展bean
    HDU5086Revenge of Segment Tree(数论)
    第五章_JSTL
  • 原文地址:https://www.cnblogs.com/refengqingfu/p/9978754.html
Copyright © 2011-2022 走看看