在做unit test時,發現有的try,catch語句中會有throw語句,雖然觀察同事的**中對於這樣的語句通常不做測試,但有時因為特殊要求或者乾脆為了追求測試百分比,還是要學會如何進行測試,記錄一下今天學到的測試方法。
原理:當程式進入需要測試的原**中並執行到throw語句時,如果上一層語句中也有throw語句,那麼將不會直接返回error,而是會跳轉到上一層語句的throw語句中。所以,我們只需要在測試程式的語句中加入throw語句,並設定好應有的assert語句即可。
例子:
原程式:
public
void
test()
catch
(exception ex)
}
unit test:
bool testresult =
true
;try
catch
今天寫test時突然意識到,有的catch後面會跟著exception,也就意味著返回上一層的throw中會有錯誤的詳細資訊,這種情況下,**改為下面的寫法會更為準確。
unit test:
bool testresult =
true
;try
catch(exception ex)
Java異常處理的throw和throws的區別
1.區別 throws是用來宣告乙個方法可能丟擲的所有異常資訊,throws是將異常宣告但是不處理,而是將異常往上傳,誰呼叫我就交給誰處理。而throw則是指丟擲的乙個具體的異常型別。2.分別介紹 throws 用於宣告異常,例如,如果乙個方法裡面不想有任何的異常處理,則在沒有任何 進行異常處理的時...
關於異常處理中throw和throws的關係
1.throw和throws存在於 抓拋模型 的異常處理模式中。2.throw是異常生成的一種方式,存在於異常物件的產生,一般寫在方法體內。throws是異常處理的一種方式,一般寫在方法頭上,宣告異常的丟擲。自我理解 1.也可以說throw和throws存在配合關係,先有throw生成異常,然後通過...
C 函式後面的throw
看智慧型指標auto ptr實現的時候發現了這麼個東東 explicit auto ptr ty ptr 0 throw0 myptr ptr 巨集 throw0 define throw0 throw 函式後面的這個throw 代表什麼意思呢?它是函式提供者和使用者的一種君子協定,標明該函式不丟擲...