2

InterruptedIOExceptionが導入されたとき、選択肢があまりなかったことを理解しています。IOExceptionのサブクラスである必要がありました。

スレッドが中断されたかどうかを知りたい場合、 InterruptedIOExceptionの唯一の存在は、間違いなく人生を少し複雑にします。これは、スレッドが中断されたという情報を維持したい場合は、 InterruptedIOExceptionをIOExceptionとは異なる方法で処理する必要があるためです。

InterruptedIOExceptionはjava.nio用に発明されましたが、少なくともSolarisでは、InterruptedIOExceptionをスローするjava.ioメソッドがあるという報告があります。また、新しいAndroidバージョンでは、ライブラリがjava.ioからjava.nioに移行したり、追加のメソッドが何らかの形でマッピングされたりするリスクがあります。

安全を期すために、 InterruptedIOExceptionを考慮する必要があると思う傾向があります。どう思いますか?洞察、経験、戦略?

4

1 に答える 1

1

個人的には、回避できれば割り込みは使いません。IO操作をブロックするために、揮発性フラグを設定し、代わりにストリームを閉じます。クローズフラグが設定されている場合、スローされたIOExceptionを無視します。これにより、コンポーネントのシャットダウン方法をより細かく制御できます。コンポーネントを設定したらclosed、もちろん設定を解除せず、何度でも確認できます。

于 2013-01-15T13:56:43.047 に答える