Java异常处理和文本I/O

在Java中,异常就是一种对象,如果异常没有被处理,程序就会非正常终止。异常是从方法抛出的,在Java中可以使用try和catch语句让一个方法抛出一个异常并且让该异常被调用者捕获。具体的代码块如下图所示:
try{
  Code to run;
  A statement or method that may throw an exception;
  More code to run;
  }
  catch(type ex){
  Code to process the exception;
  }

上面是一个try-throw-catch块的模板。catch中的ex是catch块的参数,type指定了catch块可以捕获的异常类型。异常的根类是java.lang.Throwable。try块包含正常情况下程序要执行的代码。异常被catch块捕获,catch块中的代码就是用来处理异常的。当程序开始执行时,先执行try语句块内的内容,try语句块内包含的方法是在程序开头定义的。如果程序在执行try里面的代码块是出现catch中type指定的异常,那么流此时就会跳转到catch块里,catch块是通过throw语句调用的,throw语句声明如下:

throw new type(statement);

注意throw这里的异常类型type和catch中的type要相同。在执行完catch语句后,程序会执行catch块后的下一条语句而不会返回到throw语句。

Java的异常处理模型基于的三个操作分别为声明一个异常、抛出一个异常和捕获一个异常。在方法中声明一个异常要在方法头中使用关键字throws,throws前面跟方法名,后面接异常,如果方法可能会抛出多个异常,在这些异常之间用逗号进行分隔。

public void 方法名() throws 异常1,异常2,...,异常N

抛出异常的关键字是throw,当抛出一个异常时,try-catch块可以捕获和处理它。如果执行try块没有出现异常,则跳过catch字句;如果try块某条语句抛出一个异常,Java会跳过try块中剩余的语句,从第一个catch到最后一个catch块逐个检查,找出一个包含的异常实例与异常对象类型对应的catch块,执行catch块中的代码,然后再执行所有catch块后的语句。

可以利用Java.lang.Throwable类中的实例方法获取有关异常的信息,printStackTrace()方法在控制台上打印栈跟踪信息,getMessage()返回描述该异常对象的信息,getStackTrace()访问由printStackTrace()打印输出的栈跟踪信息。

无论异常是否会发生,finally字句总是会被执行的。即使在finally块之间有一个return语句,finally块还是会执行。

创建自定义异常类,Java可以通过派生Exception类或其子类来创建自己的异常类。具体方法如下:

public class IOException extends Exception

File类
File类包含了获得一个文件/目录的属性以及对文件/目录进行改名和删除的方法。
绝对文件名是由文件名和它的完整路径以及驱动器字母组成,相对文件名时相对于当前工作目录的。
在Windows中目录的分隔符是\,但在Java中是/。
为了从文件中读取,要为文件创建一个Scanner,如下所示:

Scanner input = new Scanner(new File(filename));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值