为wmi执行例外_称之为例外?
為wmi執(zhí)行例外
雖然這是一個(gè)有關(guān)測(cè)試和Wiremock的Java示例,但它涉及一個(gè)更普遍的問(wèn)題。
我們正在嘗試重試Wiremock的verify方法,該方法可能會(huì)在我們要檢查的端點(diǎn)被命中之前由測(cè)試調(diào)用。 在這種情況下,我們希望在幾秒鐘后循環(huán)嘗試一次,直到超時(shí)為止。 有趣的是,Wiremock客戶(hù)端沒(méi)有提供這樣的方法,但是,很容易創(chuàng)建它們。
引發(fā)的對(duì)象類(lèi)型稱(chēng)為VerificationException因此我們編寫(xiě)了以下內(nèi)容:
for ( int i= 0 ; i<maxRetries; i++) { try { verify... // try to verify return ; // verify ok } catch (Exception e) { LOG.info( "Oooh, it went wrong on try " + i); "Oooh, it went wrong on try " + i); // let the loop run it again after a sleep sleep( 1000 ); } }沒(méi)用 我們的捕獲塊沒(méi)有被擊中。
深入研究并始終閱讀您使用的開(kāi)源庫(kù)的源代碼,似乎VerificationException派生自AssertionError 。
Error不是Exception 。 那么,為什么VerificationException不稱(chēng)為VerificationError呢? 我們的catch塊需要捕獲Error或Throwable才能工作。 現(xiàn)在可以做什么,并且可以工作。
什么黃?
這是違反最小驚訝原則的情況。 因?yàn)閽伋龅膶?duì)象稱(chēng)為異常 ,所以沒(méi)有人會(huì)想到這是其他任何東西。 我們需要編寫(xiě)一個(gè)失敗的異常捕獲器,對(duì)其進(jìn)行調(diào)試,并在源代碼中深入讀取幾個(gè)類(lèi)以查找此錯(cuò)誤。 期望異常是異常是我們的錯(cuò)誤嗎?
您可以輕松地解釋為什么他們選擇了具有誤導(dǎo)性的名稱(chēng),但是如果您必須解釋一些違反規(guī)范的名稱(chēng),那么最好不付出任何努力就做出解釋。
翻譯自: https://www.javacodegeeks.com/2020/03/call-that-an-exception.html
為wmi執(zhí)行例外
總結(jié)
以上是生活随笔為你收集整理的为wmi执行例外_称之为例外?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ps怎么抠图保留背景(ps怎么抠图保留背
- 下一篇: orelse_可选的orElse vs