- Android Development with Kotlin
- Marcin Moskala Igor Wojda
- 333字
- 2021-07-02 18:48:39
The try... catch block
The Kotlin try... catch block is the equivalent of the Java try... catch block. Let's look at a quick example:
fun sendFormData(user: User?, data: Data?) { // 1 user ?: throw NullPointerException("User cannot be null")
// 2 data ?: throw NullPointerException("Data cannot be null") //do something } fun onSendDataClicked() { try { // 3 sendFormData(user, data) } catch (e: AssertionError) { // 4 // handle error } finally { // 5 // optional finally block } }
- Exceptions are not specified on function signature like in Java.
- We check the validity of the data and throw NullPointerException (notice that no new keyword is required when creating an object instance).
- The try... catch block is similar construct to Java.
- Handle only this specific exception (the AssertionError exception).
- The finally block is always executed.
There may be zero or more catch blocks and the finally block may be omitted. However, at least one catch or finally block should be present.
In Kotlin exception handling, try is an expression, so it can return a value and we can assign its value to a variable. The actual assigned value is the last expression of the executed block. Let's check if a particular Android application is installed on the device:
val result = try { // 1 context.packageManager.getPackageInfo("com.text.app", 0) //2 true } catch (ex: PackageManager.NameNotFoundException) { // 3 false }
- The try... catch block is returning value that was returned by a single expression function.
- If an application is installed, the getPackageInfo method will return a value (this value is ignored) and the next line containing the true expression will be executed. This is the last operation performed by a try block, so its value will be assigned to a variable (true).
If an app is not installed, getPackageInfo will throw PackageManager.NameNotFoundException and the catch block will be executed. The last line of the catch block contains a false expression, so its value will be assigned to a variable.
- Android Development with Kotlin
- 數據結構(Java語言描述)
- OpenCV 3和Qt5計算機視覺應用開發
- Learning Three.js:The JavaScript 3D Library for WebGL
- AppInventor實踐教程:Android智能應用開發前傳
- 視窗軟件設計和開發自動化:可視化D++語言
- Java程序設計實用教程(第2版)
- XML程序設計(第二版)
- Java Web開發基礎與案例教程
- Mastering JavaScript Promises
- Unity與C++網絡游戲開發實戰:基于VR、AI與分布式架構
- FORTRAN程序設計權威指南
- 算法(第4版)
- Learning WebRTC
- 青少年編程魔法課堂:Python圖形化創意編程