kotlin更多語言結構 異常

2022-09-19 17:00:15 字數 1327 閱讀 1822

異常類

kotlin 中所有異常類都是 throwable 類的子孫類。每個異常都有訊息、堆疊回溯資訊以及可選的原因

使用 throw-表示式來丟擲異常

throw exception("hi there!")

使用 try-表示式來捕獲異常:

try 

catch (e: someexception)

finally

可以有零到多個 catch 塊。finally 塊可以省略。但是 catch 與 finally 塊至少應該存在乙個

try 是乙個表示式

try 是乙個表示式,即它可以有乙個返回值

val a: int? = try  catch (e: numberformatexception)

try-表示式的返回值是 try 塊中的最後乙個表示式或者是(所有)catch 塊中的最後乙個表示式。finally塊中的內容不會影響表示式的結果

受檢的異常

kotlin 沒有受檢的異常。這其中有很多原因,但我們會提供乙個簡單的例子。

以下是 jdk 中 stringbuilder 類實現的乙個示例介面

try 

catch (ioexception e)

nothing 型別

在 kotlin 中 throw 是表示式,所以你可以使用它(比如)作為 elvis 表示式的一部分:

val s = person.name ?: throw illegalargumentexception("name required")

throw 表示式的型別是特殊型別 nothing。該型別沒有值,而是用於標記永遠不能達到的**位置。在你自己的**中,你可以使用 nothing 來標記乙個永遠不會返回的函式

fun fail(message: string): nothing

當你呼叫該函式時,編譯器會知道在該呼叫後就不再繼續執行了

val s = person.name ?: fail("name required")

println(s) // 在此已知「s」已初始化

可能會遇到這個型別的另一種情況是型別推斷。這個型別的可空變體 nothing? 有乙個可能的值是 null 。 如果用 null 來初始化乙個要推斷型別的值,而又沒有其他資訊可用於確定更具體的型別時,編譯器會推斷出nothing? 型別

val x = null // 「x」具有型別 `nothing?`

val l = listof(null) // 「l」具有型別 `list

軟體多語言

locale是指特定於某個國家或地區的一組設定,包括字符集,數字 貨幣 時間和日期的格式等。在windows中,每個locale可以用乙個32位數字表示,記作lcid。在winnt.h中可以看到lcid的組成。它的高16位表示字元的排序方法,一般為0。在它的低16位中,低10位是primary la...

多語言切換

專案中應用到了多語言切換,鞏固一下。貼上 大家一起學習。廢話不多說直接上 1 新增多語言 在res values 下預設有個strings,需要多種語言就來建立幾個strings,values右鍵 new 乙個 values res file file name 就是strings director...

Qt 筆記 多語言

1 使用命令 lupdate no obsolete main.pro 作用 將main.pro檔案內的所有源程式檔案中的被tr 包裝的字串打包成.ts檔案,此檔案可以使用qt的qt linguist開啟並翻譯 2 使用命令 lrelease main.pro 作用 通過.ts檔案生成.qm檔案,此...