私はC ++で書かれているが例外を使用しないいくつかのゲームを知っています。C ++でのメモリ割り当てエラーの処理は一般にstd::bad_alloc
例外を中心に構築されているため、これらのゲームはどのようにそのようなエラーを処理しますか?
それらは単にクラッシュしますか、またはメモリ不足エラーを処理して回復する別の方法がありますか?
std::terminate
、それだけです。ただし、同じ制限の下で、割り当ては例外をスローする代わりにNULLポインターを返すことができ、その結果は個別にチェックおよび処理できます。
ClassName variableName = new(nothrow) ClassName();
(明らかにクラス名、変数名などを置き換えます)。その後、割り当てが失敗した場合、if(!variableName)
try-catch例外ブロックなしでエラーを処理できるようにすることでそれを検出できます。メモリは同じ機能を使用して割り当てられている場合も同様に、malloc()
、calloc()
割り当てる次いで、等、障害を同じ用いて検出することができるif(!variableName)
のtry-catchを必要とせずに方法を。ゲームがこれらのエラーを処理する方法については、その時点で、クラッシュするかどうかを判断するのはゲーム開発者の責任です。