2017-03-09 7 views
-2

私たちは中規模のアプリケーションを作成しました。すべてのコード行から約60%がコードエラー処理に移行します。このような何か:いくつかの時間後すべてのエラー処理のためにgolangエラーコードをパニックに置き換えます。

if err != nil { 
    return err 
} 

、何度も何度もこのラインを書くのは面倒になり、私たちは今、パニックを持つすべてのエラーコードを置き換えるために考えています。

私はパニックがそのように使われることを意図していないことを知っています。

潜在的な落とし穴とは何か、誰かが似たような経験をしていますか?

+2

このプロセスで発生した負傷の回復から幸運です。 IMHOこれは非常識なアイデアです。 – Volker

+3

エラーは通常の値で、 'io.EOF'のような予想されるエラーでパニックを起こすと難しくなります。 if文は本当にパニックよりも入力するのがずっと難しいですか? (あなたがそれらを入力したくない場合、あなたのエディタに共通のスニペットを提供させてください) – JimB

答えて

1

主な落とし穴は、ねじを駆動するためのハンマーの普及です。 パニックは回復不能/予期しないエラーです。エラー戻り値は回復可能/予想されるエラーです。

「パニック」という言葉を「クラッシュ」に置き換えます。これは、概念的にはパニックであるためです。あなたは正直なところ、のデザインでが何か遠隔から間違っているとクラッシュするアプリケーションを書こうと思っていますか?それは地球上で最も壊れやすいアプリケーションであり、フォールトトレランスの正反対です。

0

すべてのコメントは、あなたが災害に登録して追加することを示唆しているので、誰でもこのコードを維持するつもりは、あなたがしなければ物事がうまくいかないときに何が間違っていたのか理解しようとすると、適切なエラー処理を行います(たとえその人物があなたであっても、それはあなたに繋がります)。問題は、予測可能な&おそらく回復可能な状態

  • が回復不能である、おそらく何か(アプリケーションを終了する必要があるかで処理されるこれら2

    • を区別することができない中である - ちょうど言ったこと他人繰り返し

      より高いレベル - これはあなた自身のアプリケーションの条件や第三者のライブラリから来ているかもしれませんが、通常の実行パスからあなたを強制しています)

    パニックが予約されていますdは後者のタイプです。

  • 関連する問題