finally的特殊用途

2021-08-30 05:16:07 字數 576 閱讀 5347

finally允許你定義乙個finally_block

若try_block被執行則這個finally_block必定被執行,即使try_block中發生了跳轉或者異常(它會在跳轉或異常前執行)

function test()

} finally }}

test();

這個特性很重要,它允許我們做某些事情

比如觸發事件的時候,我們需要挨個觸發繫結在事件上的***函式.

但是如果其中某個函式需要丟擲異常呢?

這樣我們的觸發過程就會被打斷.這是我們不願意看到的.

我們可以把觸發函式放在try_block中, 把繼續觸發放在finally中, 這樣就可以既丟擲異常,又不打斷我們的觸發過程.

**類似這樣

var listeners = [function (), function ()];

function disp() finally }}

disp();

不過使用finally控制了異常的流程, 所以在disp()外面加上try catch也是無法捕獲到那個error的了.

這也算是乙個小小的缺點吧

union的特殊用途

以下注釋記錄了近期的工作內容,其中主角是c c 的關鍵字union的特殊用法 專案1.版本1 struct a 新專案組成立 專案2 svn建立分支,複製 專案1.版本2 專案2.版本1 struct a struct a 功能1 void func int age void func dword ...

特殊用途的IP位址介紹

一 0.0.0.0 嚴格說來,0.0.0.0已經不是乙個真正意義上的ip位址了。它表示的是這樣乙個集合 所有不清楚的主機和目的網路。這裡的 不清楚 是指在本機的路由表裡沒有特定條目指明如何到達。對本機來說,它就是乙個 收容所 所有不認識的 三無 人員,一律送進去。如果你在網路設定中設定了預設閘道器,...

特殊用途的IP位址介紹

特殊用途的ip位址介紹 就像我們每個人都有乙個身份證號碼一樣,網路裡的每台電腦 更確切地說,是每乙個裝置的網路介面 都有乙個ip位址用於標示自己。一 0.0.0.0 嚴格說來,0.0.0.0已經不是乙個真正意義上的ip位址了。它表示的是這樣乙個集合 所有不清楚的主機和目的網路。這裡的 不清楚 是指在...