Scala学习笔记9 - 异常和断言、检查

===异常

      scala的异常工作机制与java的类似,但也有区别。区别如下:

      ①  scala没有“受检”异常——你不需要声明函数或方法可能会抛出某种异常。

      ②  throw表达式是有值的,其值是Nothing类型。

      ③  try-catch-finally表达式也是有值的,但是情况有些特殊。当没有抛出异常时,try子句为表达式值;如果抛出异常并被捕获,则对应于相应的catch子句;如果没有被捕获,表达式就没有返回值。finally子句计算得到的值,总是被抛弃(除非使用return语句),所以你应该在finally子句中干一些它应该干的事,比如说:关闭文件、套接字、数据库连接等,而最好别干什么其他事。

 

===断言、检查

      scala里,断言使用assert函数,检查使用ensuring函数,如果条件不成立,它们将会抛出AssertionError。它们都在Predef中定义。你可以使用JVM的-ea和-da命令行标志来开放和禁止断言以及检查。

你可能感兴趣的:(scala,学习笔记,异常和断言检查,Scala)