1

これはインタビューの質問です。

次の状況のうち、例外をスローする必要があるのはどれですか? あなたの推論を説明してください。

(1) 誰かが PackingBox の容量を負の値に設定しようとしています。

(2) オブジェクトが初期状態を設定するために使用する構成ファイルに構文エラーが見つかりました。

(3)文字列配列でプログラマ指定の単語を検索するメソッドで、その単語の出現箇所が見つかりません。

いつ、どのように例外処理を使用する必要がありますか?

" しかし、自分のプログラム内から無効なデータを取得した場合は、例外をスローしないでください。問題が自分の悪いコードに起因する場合は、ASSERT を使用してそれを防ぐことをお勧めします。例外処理は、問題を特定するために必要です。ユーザーはそれらを処理できるため、プログラムは処理できず、ユーザーについて通知することはできません。」

(1) 入力はユーザーからのものであるため、例外を使用する必要があります。プログラム内部からのエラーではありません。

(2)と(3)はプログラム内部からの例外なので使用しないでください。そして、ユーザーはそれを助けることができません。したがって、「assert」または「if」ブランチを使用して、プログラム自体でエラーを処理する必要があります。

右 ?

どんな助けでも大歓迎です。

ありがとう !

4

1 に答える 1

3

(1) 誰かが PackingBox の容量を負の値に設定しようとしています。

これはプログラミング エラーです。アサートは発生するはずですが、例外は発生しません。これは単なるコードのバグです。負の値がユーザー入力によるものである場合、エラーはそれを検証していません。

(2) オブジェクトが初期状態を設定するために使用する構成ファイルに構文エラーが見つかりました。

それは例外的な状況です。

(3)文字列配列でプログラマ指定の単語を検索するメソッドで、その単語の出現箇所が見つかりません。

これは例外的な状況ではありません。一致するものが見つからないことは、予想される結果です。

于 2012-05-18T01:08:02.233 に答える