mallocに失敗した場合にどうするべきか

 ライブラリであれば、失敗を呼び出し元に伝える、もしくはGCを使ってるならGCを走らせる、などの方策が考えられる。(GCしてもメモリが確保できるとは限らないので、結局は失敗を呼出元に伝える、という事になるのかな。)
 アプリケーションの場合はどうするべきか?
 起動時にメモリが足りない→メモリが足りないとメッセージを出して終了(メッセージを出すメモリも確保できなければ黙って終了)
 なにかを行おうとしたらメモリが足りなかった→メモリが足りないとメッセージを出してメインループへ戻る
 ぐらいか。よくわからないのが、計算系のプログラムで計算してる最中にメモリが足りなくなった場合だ。この場合どうすべきか。途中までの計算結果をHDDにダンプして終了、とかかな。しかし、そんな機能をつけるほどの余裕があるなら、計算に不要な部分をひとまずHDDに書き出して計算を続行することもそう難しくなさそうな気もする。