Exception(异常)类 与Properties

异常:
*    继承体系:Throwable 异常类:Error错误类/Exception异常类
* Exception异常类
*    编译期异常(受检异常checked): 在高级开发工具中,编写代码过程中,代码中就包含的有异常信息,需要进行异常的处理,否则编译异常
*    运行期异常(运行期runtime): 在编译过程中不会发生异常,只有class文件加载到jvm虚拟机中才能检查出的异常
* 编译期异常
*     IO异常,... --->Exception
* 运行期异常 --->RuntimeException
*    ArithmeticException 算数异常
*    索引越界异常 StringIndexOutOfBoundsException
*    空指针异常  NullPointerException
* 结果:
*     异常在程序中发生后,会导致程序异常终止,异常后面的代码是不会执行或者加载的
*
* 异常:
*      JVM 首先JVM会找到匹配的异常类(对象)来接收异常信息
*      异常对象包括:异常的类型/异常产生的位置/异常产生的原因/异常解决的办法(措施)
* 异常链:
*     一个异常可能会引发其他异常
*     cause by ......
*
* 解决异常:
*      通过它的提示信息来定位异常产生的位置--->原因---->日志
Properties
*    它是一个属性集,属于HashTable类的一个子类,可以使用Map接口当中所有的方法
*    它的键值对类型都是字符串
*  常用API方法:
*     store() --->把属性集中的数据存储到文件中
*     load() ---->把文件中的数据读取到Properties属性集中
*     getProperty() ---->获取属性值
*     setProperty() ---->设置
备注:
*     如果类中定义的成员变量为静态的,那么该静态成员变量是不能进行序列化的
*     原因:因为静态成员变量不属于对象的,存储的位置不在对象当中,在方法区中的静态区中存储
*         所以我们在进行对象数据序列化的时候,是不能把方法区中静态区中的数据进行序列化,最终
*         静态成员变量值是不会存储到序列化的文件中
异常处理措施:
*     1. 可以使用try-catch语句块
*     2. 使用throws往上抛出异常,由程序调用者来处理下层的异常----->异常最终会抛给虚拟机
*
* 备注:
*    1. 把可能引发异常的代码放到try语句块中,catch语句块中定义的异常类型一定对应匹配,否则异常不会被处理掉,程序还是会异常终止.
*    2. 即便我们书写了多个catch语句块,当try语句当中引发异常后,引发异常代码后的内容将不会被程序执行,程序此时会直接跳跃到对应的catch语句块中
*    3. try-catch语句块除了可以并列使用还可以嵌套使用
*    4. 在catch语句块中,把较大范围的异常类型放到后面,把范围较小的异常类型放到前面----->子在上,父在下。
*    5. 如果在try语句块当中,有些代码是必须要加载的,我们可以把必须要加载的代码放到finally语句块中去加载
*    6. 使用throws抛出异常处理办法,更多时候是对程序调用着进行友好提示
*    7. 定义方法功能时,如果对方法参数有要求,当参数不满足要求时可以手动制造一个异常,往外抛出,使用throw来抛出一个受检异常---->(Assert)--->断言

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值