Javaのドキュメントは、特定のIOExceptionの根本的な原因を知るのに役立ちます。
ドキュメントページからの直接既知のサブインターフェイスをご覧ください。IOException
ChangedCharSetException, CharacterCodingException, CharConversionException, ClosedChannelException, EOFException, FileLockInterruptionException, FileNotFoundException, FilerException, FileSystemException, HttpRetryException, IIOException, InterruptedByTimeoutException, InterruptedIOException, InvalidPropertiesFormatException, JMXProviderException, JMXServerErrorException, MalformedURLException, ObjectStreamException, ProtocolException, RemoteException, SaslException, SocketException, SSLException, SyncFailedException, UnknownHostException, UnknownServiceException, UnsupportedDataTypeException, UnsupportedEncodingException, UserPrincipalNotFoundException, UTFDataFormatException, ZipException
これらの例外のほとんどは自明です。
IOExceptions
根本的な原因のいくつか:
EOFException:入力中にファイルの終わりまたはストリームの終わりに予期せず到達したことを通知します。この例外は、主にデータ入力ストリームによって使用され、ストリームの終了を通知します。
SocketException:ソケットの作成またはアクセス中にエラーが発生したことを示すためにスローされます。
RemoteException:RemoteExceptionは、リモートメソッド呼び出しの実行中に発生する可能性のあるいくつかの通信関連の例外の一般的なスーパークラスです。java.rmi.Remoteを拡張するインターフェースであるリモート・インターフェースの各メソッドは、throws節にRemoteExceptionをリストする必要があります。
UnknownHostException:ホストのIPアドレスを特定できなかったことを示すためにスローされます(インターネットに接続していない可能性があります)。
MalformedURLException:不正な形式のURLが発生したことを示すためにスローされます。仕様文字列に有効なプロトコルが見つからなかったか、文字列を解析できませんでした。