版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目6利用异常机制处理闹钟软件的运行错误古凌岚张婵罗佳人民邮电出版社Java系统化项目开发教程知识要点异常和异常类异常处理机制自定义异常类日志管理类引子如果程序出错了,怎么办?程序运行出现不正常调试程序时,会出现程序运行过程中,突然中止,屏幕上出现一大堆英文......。ATM机输入密码出错时,会提示用户重新输入密码,三次后将吞卡以上情况对于程序而言,就是异常Java中提供了异常处理机制6.1实战任务六:防止背景图片找不到而导致的程序中断问题分析如果闹钟工具软件运行时,中断出现以下信息需要分析信息内容,判断出错的位置及原因,并予以纠正程序出错两种情况:编译时出错和运行时出错,对应地进行语法纠错,或是检查程序逻辑处理过程存在的问题对于第二种情况,可应用Java异常处理机制来应对6.1实战任务六:防止背景图片找不到而导致的程序中断异常指发生在正常情况以外的事情,如用户输入错误、除数为零、需要的文件不存在、文件打不开、数组下标越界、内存不足等。程序在运行过程中发生这样或那样的错误是不可避免的。在设计程序时,要充分考虑到各种意外情况,不仅要保证应用程序的正确性,而且还应该具有较强的容错能力。将对异常情况给予恰当处理的技术,称为异常处理6.1实战任务六:防止背景图片找不到而导致的程序中断异常处理机制无论是程序本身或用户原因出现的问题,都属于程序中的异常,异常表示例外的事件。程序执行过程中,可能出现的常见例外情况:非法运算错误运行内存不足资源耗尽错误文件不存在错误网络无法连接6.1实战任务六:防止背景图片找不到而导致的程序中断运行中出现异常,程序至少要做到通知用户错误产生保存相关数据用户可退出程序6.1实战任务六:防止背景图片找不到而导致的程序中断对于异常的处理通常有两种方法计算机系统本身直接检测程序中的错误,遇到错误时终止程序运行由程序员在程序设计中加入处理异常的功能无异常处理:使用if/switch条件分支,对于预设错误进行判断和处理,逻辑代码与错误处理代码相互缠绕,可读性及可维护性较差有异常处理:Java中采用错误捕获方式(异常处理机制),提供错误通知机制,并能够对于错误进行善后处理,使得程序不会中断,同时减少代码量,提供代码可读性可维护性6.1实战任务六:防止背景图片找不到而导致的程序中断异常类基类Throwable派生出两个直接子类:Error和Exception。Error类及其所有子类用来表示严重的运行错误,它定义了通常无法捕捉到的异常,例如系统的内部错误或资源耗尽错误。如果出现这类错误,程序员只能通知用户并试图中止程序,不过这种情况较少发生Exception类及其子类定义了程序可以捕捉到的异常,在编程中要处理的异常主要是这一类6.1实战任务六:防止背景图片找不到而导致的程序中断异常的捕获和处理认识程序运行的错误类型及位置Exception类定义了程序可捕捉的异常。Exception类有两个重要子类:RuntimeException和IOExceptionRuntimeException类的异常一般是编程原因,如:错误的类型转换(NumberFormatException)数组越界访问(ArrayIndexOutOfBoundsException)空指针访问(NullPointerException)除以零的算术操作(ArithmeticException)6.1实战任务六:防止背景图片找不到而导致的程序中断IOException类的异常原因主要一些意外情况的出现,如:试图读文件结尾后的数据(EOFException)试图打开一个错误的URL(UnknownHostException)试图根据一个根本不存在的类的字符串来找一个Class对象(ClassNotFoundException)6.1实战任务六:防止背景图片找不到而导致的程序中断异常示例运行结果6.1实战任务六:防止背景图片找不到而导致的程序中断捕获和处理异常6.1实战任务六:防止背景图片找不到而导致的程序中断当异常出现时,JVM会自动创建对应地异常类对象,传递给运行中的程序,并由一个称为throwinganexception(引发异常)的操作完成6.1实战任务六:防止背景图片找不到而导致的程序中断Java异常处理机制中的关键字try、catch、finallytry和catchtry{//可能引起异常的语句}catch(…){//出错处理程序}try-catch应用示例如右侧代码6.1实战任务六:防止背景图片找不到而导致的程序中断分析一下程序中可能出现的异常6.1实战任务六:防止背景图片找不到而导致的程序中断对于上例出现的异常,可以修改为6.1实战任务六:防止背景图片找不到而导致的程序中断多个catch的应用示例6.1实战任务六:防止背景图片找不到而导致的程序中断finallyfinally{//需要处理的语句}finally应用示例:6.1实战任务六:防止背景图片找不到而导致的程序中断try-catch-finally常用的组合用法try+catchtry+catch+finallytry+finally6.1实战任务六:防止背景图片找不到而导致的程序中断抛出异常的方式try-catchthrowsthrow6.1实战任务六:防止背景图片找不到而导致的程序中断try-catch示例throws示例6.1实战任务六:防止背景图片找不到而导致的程序中断throw示例6.1实战任务六:防止背景图片找不到而导致的程序中断自定义异常业务逻辑处理需要,如某些符合语法但不符合业务要求的情况,需要抛出对应的异常软件需要为用户提供安全和直观的异常信息,需统一异常展示方式自定义异常的步骤定义一个类继承于Exception类或Throwable重载构造函数根据需要,重写父类的公共方法6.1实战任务六:防止背景图片找不到而导致的程序中断自定义异常应用示例6.1实战任务六:防止背景图片找不到而导致的程序中断6.1实战任务六:防止背景图片找不到而导致的程序中断6.1实战任务六:防止背景图片找不到而导致的程序中断LoggingAPIJava提供了LoggingAPI(日志管理API),它可以让程序记录不同级别的信息,并保存在日志文件中,一旦系统因为某种原因崩溃,通过日志就可清晰地追溯到问题所在日志信息有8个级别,按优先级从高到低顺序:SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST和ALL6.1实战任务六:防止背景图片找不到而导致的程序中断LoggingAPI中几个重要的类LogManager:所有Logger实例共享的类,用于维护Logger和日志服务的一组共享状态Logger:核心类,用来记录特定系统或应用程序组件的日志消息LogRecord:用于在日志框架和单个日志Handler之间传递日志请求Handler:用于从Logger中获取日志信息,并将这些信息导出Formatter:日志格式化处理器,为格式化LogRecords提供支持6.1实战任务六:防止背景图片找不到而导致的程序中断日志管理类的处理流程:当程序要创建Logger对象时,如LogManager(Logger工厂)已存在当前Logger的名字,则直接使用,否则LogManager读取系统配置,设置默认级别INFO,返回一个新的日志管理类对象。语句1就是通过这个方式创建一个test.log的日志管理类对象;6.1实战任务六:防止背景图片找不到而导致的程序中断当使用Logger来生成一条日志时,首先将日志保存在LogRecord中,并由LogRecord传送给Handler导出信息,信息格式则是由Formatter事先已为Handler指定好的。由于perties文件中,已设置了默认Handler为java.util.logging.ConsoleHandler,Formatter为java.util.logging.SimpleFormatter语句2执行后,输出INFO级别信息,且信息显示于console(控制台)上。6.1实战任务六:防止背景图片找不到而导致的程序中断Logger的应用示例运行结果6.1实战任务六:防止背景图片找不到而导致的程序中断自定义Logger的应用示例运行结果6.1实战任务六:防止背景图片找不到而导致的程序中断6.1实战任务六:防止背景图片找不到而导致的程序中断6.1实战任务六:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年在线预约服务协议
- 2025年仓库出租合同
- 2025年现金赠与合同的风险评估
- 2025年进口担保协议
- 2025年存货质押法律法规汇编
- 2025版委托代销与授权经营合同3篇
- 2025版高端酒店客房装修与维护服务合同4篇
- 2025年度商铺租赁预付定金合同范本4篇
- 二零二五年度企业裁员补偿解除劳动合同赔偿协议
- 二零二五年度铁路货运合同货物运输合同纠纷解决机制协议
- 机电安装工程安全管理
- 2024年上海市第二十七届初中物理竞赛初赛试题及答案
- 信息技术部年终述职报告总结
- 高考满分作文常见结构完全解读
- 理光投影机pj k360功能介绍
- 六年级数学上册100道口算题(全册完整版)
- 八年级数学下册《第十九章 一次函数》单元检测卷带答案-人教版
- 帕萨特B5维修手册及帕萨特B5全车电路图
- 小学五年级解方程应用题6
- 年月江西省南昌市某综合楼工程造价指标及
- 作物栽培学课件棉花
评论
0/150
提交评论