問題タブ [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.

0 投票する
3 に答える
618 参照

java - try catch が null を返さないようにすることは可能ですか?

誰かが私のメソッドを呼び出した場合、防御的に問題に対処したいと考えています。通常、私はただ戻りnullます。

を実装することにしましたが、とにかくtry catch戻ってしまうようです。null

try catchメソッドの最後で返されないようにmy を書くことはできnullますか?

peekStack クラスで使用するサンプル コード。

空のスタックで呼び出された場合。戻りnullます。

try catchでは、この種のケースの場合でも気にする必要がありますか? 私はこれをしたくなる:

スタックが空でない場合は、要素を返します。スタック空の場合、try-catch?

0 投票する
3 に答える
89 参照

java - DRY 原則を破ることなく、インターフェイスからメソッドの引数をチェックするにはどうすればよいですか

次のコードがあります。

DRY の原則を破ったのは、すべての実装でチェックを繰り返し、ドキュメントもそれを繰り返しているためです。この状況で引数を確認する最良の方法は何ですか?

0 投票する
3 に答える
107 参照

java - このクラスをより不変にすることはできますか?

このクラスを不変にするためにできることは他にありますか? 文字列はすでに不変であり、セットは変更不可で返されます。tutees と name 変数はプライベートで最終的なものです。他に何ができるでしょうか?Tutor クラスを使用するクラスだけがパッケージ内にある場合、コンストラクター、getTutees メソッド、および getName メソッドを package-private に変更できますか?

編集:

これが Student クラスです。この質問では、Student を不変にするために必要な変更について説明するよう求められました。変数を final にできるように、両方のセッター メソッドをコメントアウトしました。これが真に不変にする唯一の方法ですか?

0 投票する
3 に答える
503 参照

c# - 「オブジェクトを DBNull から他の型にキャストできない」ことを防ぐにはどうすればよいですか?

私はこのコードを持っています.ISTMはnullの割り当てに対して防御的にコーディングしています:

...まだ、最後に試行された割り当て (pauv.Week2Usage へ) の特定の反復で、「オブジェクトを DBNull から他の型にキャストすることはできません」というメッセージが表示されます。

そのフィールドはクラスに表示されます。

...そして、コードはほとんどのレコードで正常に実行されます。

この例外の原因は何ですか?どうすればそれを防ぐことができますか?

0 投票する
0 に答える
411 参照

if-statement - 防御的プログラミング、if-then-else は switch-case にする必要がありますか?

if-then-else をコーディングしていたときに、これは悪いプログラミングだと思いました。

しかし、私がこの関数をコーディングしていたとき、私はこれを書くべきだったと思いました

このように、誰かが「レビュー中」などの別の状態を追加し、プログラマーがこのメソッドを「更新」できなかった場合、間違ったプログラミングが実行されていました。

TRUEまたはFALSE以外の明示的な値のセットがあるすべての場合、すべてのif-then-[elseif]-else比較はcase [switch]を介して実行する必要があり、例外をスローするelseを指定する必要があると思います.

これは防御的プログラミングですか?またはパラノイア?

0 投票する
1 に答える
184 参照

java - NoClassDefFoundError を確認する方法は?

Samsung および QMobile の特定のデバイスからのみ、Android モバイル アプリで NoClassDefFoundError がほとんど発生しません。

以下のコードを追加すると、エラーが検出されますか?

アプリがクラッシュすることなく NoClassDefFoundError をプロアクティブに検出する最良の方法は何ですか?

編集:

ドキュメントには、メソッドが以下の例外をスローすることが記載されており、については何も言及されていませんNoClassDefFoundError

質問を次のように言い換えることができます

Class.forName(String)クラスに「 Def NoClassDefFoundError」があるかどうかを確認するにはどうすればよいですか?