1

私の理解では、例外をキャッチするのではなく、例外を回避するために事前にテストすることをお勧めします。アセットファイルを開こうとする前に、アセットファイルが存在するかどうかを確認する方法はありますか?

4

1 に答える 1

0

アセットで使用できるそのような機能はありませんが、その必要はありません(以下を参照)。

私の理解では、例外をキャッチするのではなく、例外を回避するために事前にテストすることをお勧めします。

これは、例外がアプリケーションの通常の(予期される)操作の一部である場合にのみ当てはまります。言い換えると、例外が統計的に一般的なイベントである場合(たとえば、特定の場所で「頻繁に」発生すると予想される場合)、例外をキャッチすると、パフォーマンスに大きなコストがかかる可能性があります。(実際には、これは短期間に多くの例外がキャッチされた場合にのみ問題になるため、ベンチマークは常に重要です。)

通常、アセットにアクセスしようとしたときにアセットが欠落しているとは思わないため(そうでない場合は、アプリケーションで何かが間違って設計されています)、例外的な場合には例外ハンドラーを使用するのが適切です。

要約すると、例外を伴うエラー処理にはパフォーマンスコストがかかりますが、エラー(特に抑制されるエラー)はまれなイベントであると予想されます。アプリケーションの特定の部分でエラーが頻繁に発生すると予想される場合は、設計に問題がある可能性があります。(これが当てはまらない非常に例外的な状況が発生する可能性がありますが、これらは非常にまれで非定型のアプリケーションドメインです。)

実際には、たとえば、アセット名が外部(ユーザーなど)の入力からのものである場合は、例外を使用しても問題ありません。これは、発生する可能性のある例外の「頻度」が低いためです。一方、多くのアセットが存在するかどうかを判断しようとしている場合(ループ内など)、例外処理には許容できないパフォーマンスコストがかかる可能性がありますが、そのようなことが必要になるとはほとんど想像できません。

于 2012-11-16T01:45:10.227 に答える