软件构造系列博客4--实验4相关(HIT)

本次实验是对实验3的加强版,重点是要掌握异常处理的办法以及日志功能

1.Java异常处理

检查型异常(Checked Exception)与非检查型异常(Unchecked Exception)
所有的检查性异常都继承自java.lang.Exception;所有的非检查性异常都继承自java.lang.RuntimeException。
检查性异常和非检查性异常最主要的区别在于其处理异常的方式:检查性异常必须使用try catch或者throws等关键字进行处理,否则编译器会报错;非检查性异常一般是程序代码写的不够严谨而导致的问题,可以通过修改代码来规避。
常见的运行时异常:空指针异常(NullPointerException)、除零异常(ArithmeticException)、数组越界异常(ArrayIndexOutOfBoundsException)等;
常见的检查性异常:输入输出异常(IOException)、文件不存在异常(FileNotFoundException)、SQL语句异常(SQLException)等

	try{
        可能会发生的异常
    }catch(异常类型 异常名(变量)){
        针对异常进行处理的代码
    }

2.断言

在Java中是用assert实现的,看起来很简单不过用处非常大
assert使用场所:
内部不变量:判断某个局部变量应该满足的条件,assert x > 0
表示不变量:checkRep()
控制流不变量:例如,若不想让程序走向switch-case的某个分支,则可以用断言直接在分支上assert false;
方法的前置条件:判断传入参数是否满足前置条件
方法的后置条件:判断结果时候满足后置条件

3.日志

以往我们做调试,修改bug可能很多人习惯的方式是System.out.print大法直接控制台信息,不过当我们编写的软件过于复杂的时候,这种办法会使程序非常冗杂而且会直接影响客户的使用,或者你再后期再注释掉,不过测试人员和后续的码农看见你的代码会很蛋疼,所以需要引入日志
因为项目比较简单,这里我使用的是Java自带的logging

日志初始化:

Locale.setDefault(new Locale("en", "EN"));
logger.setLevel(Level.INFO);
FileHandler fileHandler = new FileHandler("src/log/FlightScheduleLog.txt", true);
fileHandler.setFormatter(new SimpleFormatter());
logger.addHandler(fileHandler);

异常记录:

logger.logp(Level.WARNING, "Entry,empty", "deleteL", ex.getMessage());

正常操作记录:

logger.logp(Level.INFO, "Entry," + text.getText(), "deleteL", "success");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值