2016-07-25 31 views
-2

大きなファイルを書きたいと思っていますが、期待しているのはOutOfMemoryErrorです。 OutOfMemoryErrorのメッセージを返信します。 try-catchを使用しましたが、エラーをキャッチできません。お勧めしますJavaでOutOfMemoryErrorをキャッチ

+0

私はこれが役に立たないと思いますが、あなたのJVMがメモリ不足になったら、何にも頼ることができません。 OutOfMemoryErrorがまったく起こらないようにする方法はありますか? –

+0

ダビデが言ったことを分担する。 'OutOfMemoryError'の原因を調べる必要があります。これは(ほとんど)常にユーザーエラーです。 –

+0

説明している動作を示す最小限の例を提供できますか? – nasukkin

答えて

0

あなたのファイルはどれくらいの大きさで、あなたのサイズは?

を処理する最善の方法は、OutOfMemoryErrorの原因を見つけるには、jvmパラメータ-XX:+HeapDumpOnOutOfMemoryErrorを使用してプログラムを実行することです。これにより、.hprofファイルの形式でヒープダンプが生成されます。このファイルをJava Memory Analyzerで解析して、メモリリークの原因を調べることができます。

+0

現時点ではエラーを処理する必要はありません。今、すべてのタスクについて、ステータスが更新されます(パーケットファイルが正常に書き込まれた場合)。書き込み中にエラーが発生した場合は、ステータスをfailedと設定する必要があります。しかし、私はその例外を捕らえることができません。ここで私のコードスニペットです:dfTask.write()。mode(SaveMode.Append).parquet(filePath);失敗したらメッセージを送信する必要があります – treena

+0

ハンドルでは、エラーの原因を見つけることができます。 – noscreenname

関連する問題