程序运行中可能发生各种问题,或者出现超出了可控范围的环境因素,例如用户使用的是损坏的数据、打开一个不存在的文件、空指针、数组溢出等。在Scala中运行这种程序时可能出现的一些错误称为异常。异常是一个在程序执行期间发生的事件,中断了正在执行的程序的正常指令流。
1.try-catch捕获异常 例1-19定义了一个变量n,赋值99,使用关键字try-catch的方式捕获异常。如果n能被2整除,那么n是一个偶数,程序正常运行结束;如果n不能被2整除,即n是一个奇数,那么就使用throw new RuntimeException抛出一个异常RuntimeException("N must be event")。与Java不同的是,Scala使用case进行模式匹配来捕获异常。在catch模块中,case语句对抛出的异常进行匹配,打印输出"The exception is:"+e.getMessage(),其中e.getMessage()是之前定义的描述词N must be event。如例1-19所示。
【例1-19】try-catch捕获异常示例。
运行结果如图1-58所示。
图1-58 try-catch捕获异常
2.finally子句 如果某些代码无论如何中止都需要执行的话,可以将执行语句放在finally子句中。
1)首先打开资源,如打开文件、连接数据库、建立网络socket套接字。
2)然后通过try代码块使用资源,对资源进行操作。如文件的读写操作,以及数据库表记录的增、删、修改、查询;socket数据流的发送接收等,在资源的使用过程中,如发生异常,使用try-catch的方式捕获异常。(www.daowen.com)
3)最后,在finally子句关闭资源。如关闭文件、关闭数据库的连接、关闭socket的网络接口资源等。
finally子句如例1-20所示。
【例1-20】finally子句示例。
运行结果如图1-59所示。try-catch-finally运行中打印输出一行日志。
图1-59 运行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。