<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          C++核心準(zhǔn)則E.18:最小限度顯式使用try/catch

          E.18: Minimize the use of explicit?try/catch

          E.18:最小限度顯式使用try/catch


          Reason(原因)

          try/catch?is verbose and non-trivial uses are error-prone.?try/catch?can be a sign of unsystematic and/or low-level resource management or error handling.

          try/catch結(jié)構(gòu)冗長,非平凡的用法容易出錯(cuò)。try/catch可以看作是非系統(tǒng)化和低層次資源管理或錯(cuò)誤處理的信號(hào)。


          Example, Bad(反面示例)

          void f(zstring s)
          {
          Gadget* p;
          try {
          p = new Gadget(s);
          // ...
          delete p;
          }
          catch (Gadget_construction_failure) {
          delete p;
          throw;
          }
          }

          This code is messy. There could be a leak from the naked pointer in the?try?block. Not all exceptions are handled.?deleting?an object that failed to construct is almost certainly a mistake. Better:

          代碼很凌亂。try代碼塊中的原始指針可能發(fā)生內(nèi)存泄露。不是所有的異常都會(huì)被處理。刪除一個(gè)構(gòu)建失敗的對(duì)象機(jī)會(huì)當(dāng)然是一個(gè)錯(cuò)誤。較好的做法:

          void f2(zstring s)
          {
          Gadget g {s};
          }
          Alternatives(其他選項(xiàng))
          • proper resource handles and?RAII

          • 正確使用資源句柄和RAII。

          • finally

          • finally處理


          Enforcement(實(shí)施建議)

          ??? hard, needs a heuristic

          很難,需要啟發(fā)式提示。


          原文鏈接

          https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#e18-minimize-the-use-of-explicit-trycatch


          新書介紹

          以下是本人3月份出版的新書,拜托多多關(guān)注!


          本書利用Python 的標(biāo)準(zhǔn)GUI 工具包tkinter,通過可執(zhí)行的示例對(duì)23 個(gè)設(shè)計(jì)模式逐個(gè)進(jìn)行說明。這樣一方面可以使讀者了解真實(shí)的軟件開發(fā)工作中每個(gè)設(shè)計(jì)模式的運(yùn)用場(chǎng)景和想要解決的問題;另一方面通過對(duì)這些問題的解決過程進(jìn)行說明,讓讀者明白在編寫代碼時(shí)如何判斷使用設(shè)計(jì)模式的利弊,并合理運(yùn)用設(shè)計(jì)模式。

          對(duì)設(shè)計(jì)模式感興趣而且希望隨學(xué)隨用的讀者通過本書可以快速跨越從理解到運(yùn)用的門檻;希望學(xué)習(xí)Python GUI 編程的讀者可以將本書中的示例作為設(shè)計(jì)和開發(fā)的參考;使用Python 語言進(jìn)行圖像分析、數(shù)據(jù)處理工作的讀者可以直接以本書中的示例為基礎(chǔ),迅速構(gòu)建自己的系統(tǒng)架構(gòu)。




          覺得本文有幫助?請(qǐng)分享給更多人。

          關(guān)注微信公眾號(hào)【面向?qū)ο笏伎肌枯p松學(xué)習(xí)每一天!

          面向?qū)ο箝_發(fā),面向?qū)ο笏伎迹?/span>


          瀏覽 69
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美亚洲影院 | 操骚逼视屏 | 毛片av免费看 | 狠狠狠狠狠插狠狠狠插狠狠狠插 | 婷婷丁香人妻天天爽 |