‘try-catch-finally’
和Java一样,你可以使用--去捕获和处理异常,接下来的例子中你可以看到它是如何工作的:
这段代码和Java最大的不同就是在Java中,你必须在函数后声明你的函数会抛出什么已检查的类型异常,比如这里你得在你的函数声明后面声明你的函数会抛出。在Kotlin中,这是不必要的。
Kotlin和其他现代的JVM语言一样,并不区分和,你不需要指出你的函数或者方法可以抛出什么异常。
这样的设计是基于Java的大量用例,经验表明,Java的规则通常需要很多无意义的代码来重新抛出或者忽略异常,这种规则并不能始终保护你可以免受发生错误的影响。
比如说,像上面写的代码,不是一个,因此,Java编译器不强制要求你捕获它,但是你可以很轻易地看到它会在运行时发生错误,一些不合法的数据输入所导致它的发生。与此同时,方法可以抛出一个,它是个,需要被捕获处理。但是很多的程序在关闭失败时也并不能做出什么有效的处理。
‘try’作为一个表达式
让我们来看看和Java相比另一个比较有意思的不同:
可以看到,只有一行输出,第二个函数调用并没有执行到打印语句。在这里作为了一个带有值的表达式,如果字符串解析成功,返回解析后的数字,否则进入直接返回函数被调用的地方。
领取专属 10元无门槛券
私享最新 技术干货