問題タブ [defensive-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - try catch が null を返さないようにすることは可能ですか?
誰かが私のメソッドを呼び出した場合、防御的に問題に対処したいと考えています。通常、私はただ戻りnull
ます。
を実装することにしましたが、とにかくtry
catch
戻ってしまうようです。null
try
catch
メソッドの最後で返されないようにmy を書くことはできnull
ますか?
peek
Stack クラスで使用するサンプル コード。
空のスタックで呼び出された場合。戻りnull
ます。
try
catch
では、この種のケースの場合でも気にする必要がありますか? 私はこれをしたくなる:
スタックが空でない場合は、要素を返します。スタックが空の場合、try-catch
?
java - DRY 原則を破ることなく、インターフェイスからメソッドの引数をチェックするにはどうすればよいですか
次のコードがあります。
DRY の原則を破ったのは、すべての実装でチェックを繰り返し、ドキュメントもそれを繰り返しているためです。この状況で引数を確認する最良の方法は何ですか?
java - このクラスをより不変にすることはできますか?
このクラスを不変にするためにできることは他にありますか? 文字列はすでに不変であり、セットは変更不可で返されます。tutees と name 変数はプライベートで最終的なものです。他に何ができるでしょうか?Tutor クラスを使用するクラスだけがパッケージ内にある場合、コンストラクター、getTutees メソッド、および getName メソッドを package-private に変更できますか?
編集:
これが Student クラスです。この質問では、Student を不変にするために必要な変更について説明するよう求められました。変数を final にできるように、両方のセッター メソッドをコメントアウトしました。これが真に不変にする唯一の方法ですか?
c# - 「オブジェクトを DBNull から他の型にキャストできない」ことを防ぐにはどうすればよいですか?
私はこのコードを持っています.ISTMはnullの割り当てに対して防御的にコーディングしています:
...まだ、最後に試行された割り当て (pauv.Week2Usage へ) の特定の反復で、「オブジェクトを DBNull から他の型にキャストすることはできません」というメッセージが表示されます。
そのフィールドはクラスに表示されます。
...そして、コードはほとんどのレコードで正常に実行されます。
この例外の原因は何ですか?どうすればそれを防ぐことができますか?
if-statement - 防御的プログラミング、if-then-else は switch-case にする必要がありますか?
if-then-else をコーディングしていたときに、これは悪いプログラミングだと思いました。
しかし、私がこの関数をコーディングしていたとき、私はこれを書くべきだったと思いました
このように、誰かが「レビュー中」などの別の状態を追加し、プログラマーがこのメソッドを「更新」できなかった場合、間違ったプログラミングが実行されていました。
TRUEまたはFALSE以外の明示的な値のセットがあるすべての場合、すべてのif-then-[elseif]-else比較はcase [switch]を介して実行する必要があり、例外をスローするelseを指定する必要があると思います.
これは防御的プログラミングですか?またはパラノイア?
java - NoClassDefFoundError を確認する方法は?
Samsung および QMobile の特定のデバイスからのみ、Android モバイル アプリで NoClassDefFoundError がほとんど発生しません。
以下のコードを追加すると、エラーが検出されますか?
アプリがクラッシュすることなく NoClassDefFoundError をプロアクティブに検出する最良の方法は何ですか?
編集:
ドキュメントには、メソッドが以下の例外をスローすることが記載されており、については何も言及されていませんNoClassDefFoundError
。
質問を次のように言い換えることができます
Class.forName(String)
クラスに「 DefNoClassDefFoundError
」があるかどうかを確認するにはどうすればよいですか?