try〜catchの上手な使い方がいまいちよくわからん

例えばファイルに無限に書き続けるというとき
例外が起こったら適切に処理をするように書くと
for(;;){ try{ File f = new File("/hoge");{
try{ for(;;)f.write(hoge);
}catch(Exception e){f.close();} }
}catch(Exception e){} }
大雑把に言って、こういう感じで書いてるけど
try〜catchが2重になるのがなんだかいやだ