- C#で新しい演算子を使用すると失敗する可能性がありますか(たとえば、大きなメモリが必要な場合)?-解決済み-
- そしてそれを発見する方法は?-解決済み-
- 新しいオペレーターがスローする可能性のある他の障害は何ですか?
ありがとう
ありがとう
new
失敗すると、OutOfMemoryExceptionがスローされます。さらに、コンストラクター自体は、実装に応じて例外をスローする場合があります。
OutOfMemoryExceptionのMSDNドキュメントから:
次のMicrosoft中間(MSIL)命令は、OutOfMemoryExceptionをスローします。
箱
newarr
newobj
new
コンストラクターを呼び出すオペレーターは、想像できるあらゆる例外をスローできます。たとえば、コンストラクター内で何か大きなものを割り当てようとして失敗した場合、その例外がキャッチされ、よりエキゾチックなものとして再発生する可能性があります。
もちろん、メモリ不足が発生し始めた時点で、おそらくプロセスが末期症状であると見なし、その悲惨な状況からできるだけ早く取り除く必要があります。
null
コンストラクターは、それとは反対のすべての噂にもかかわらず、クラスに対しても戻ることができます-しかし、それは病理学的に隣接する極端なエッジケースです。
C#で新しい演算子を使用すると失敗する可能性がありますか(大容量のメモリが必要な場合)?
はい。(不足する可能性のあるリソースはアドレス空間であり、メモリ自体ではありません。)
そしてそれを発見する方法は?
質問がわかりません。
はい、スローしますOutOfMemoryException