copy的是靜態型別。
基類 &r=派生類;
throw r;//基類異常
catch(a a)//丟擲原來的異常(可能是動態型別),向外傳遞,
catch(a a)//丟擲異常a,向外傳遞,都是型別a異常
catch(),異常物件會被copy,再傳遞給catch,如果catch是by value傳遞引數,則異常物件被copy兩次。之所以異常物件被賦值,是因為,一旦異常被丟擲,就脫離了原來的作用域,就會被銷毀,所以要copy乙份。
轉型動作有兩個。
catch(基類 ),可以傳遞派生類引數。
catch(const void*),可以捕獲任何指標型別
多個catch,按先後順序被匹配,不是最佳匹配。
catch(基類){}
catch(派生類){}//總不會被執行
try和catch的用法
try catch 錯誤處理 執行規則 首先執行try中的 如果丟擲異常會由catch去捕獲並執行 如果沒有發生異常 catch去捕獲會被忽略掉 但是不管有沒有異常最後都會執行。try 語句使你能夠測試 塊中的錯誤。catch 語句允許你處理錯誤。throw 語句允許你建立自定義錯誤。丟擲錯誤 fi...
Promise中then和catch的執行過程
一直以來有個誤解,以為then和catch的執行就是乙個二選一的過程,直到後來遇到類似下面的 發現不是這麼一回事 promise.reject then catch promise.resolve then catch 執行結果自然是2 1 1 2 翻了一下then和catc 檔,catch是the...
Linux 下 2 1 和 1 2 的區別
近日在網上看題時遇到這麼一條題目 下面兩條命令分別會有怎樣的輸出 echo hello 1 2 grep aaa echo hello 2 1 grep aaa a 兩個均輸出hello b 第乙個無輸出,第二個輸出 hello c 第乙個輸出hello,第二個無輸出 d 兩個均輸出hello 正確...