Mono Class Library: Mono.Unix.UnixMarshal Overview | Members

Mono.Unix.UnixMarshal.ThrowExceptionForErrorIf Method

Throws an exception that best matches errno if retval is -1. [Edit]

[System.CLSCompliant(false)]
public static void ThrowExceptionForErrorIf (int retval, Mono.Unix.Native.Errno errno)

Parameters

retval
A int containing the return value of a method from Mono.Unix.Native.Syscall. [Edit]
errno
A Mono.Unix.Native.Errno specifying the exception to throw. [Edit]

Exceptions

TypeReason
ArgumentExceptionerrno is Mono.Unix.Native.Errno.EBADF or Mono.Unix.Native.Errno.EINVAL. [Edit]
ArgumentOutOfRangeExceptionerrno is Mono.Unix.Native.Errno.ERANGE. [Edit]
InvalidOperationExceptionerrno is Mono.Unix.Native.Errno.EOPNOTSUPP or Mono.Unix.Native.Errno.EPERM. [Edit]
InvalidProgramExceptionerrno is Mono.Unix.Native.Errno.ENOEXEC. [Edit]
NullReferenceExceptionerrno is Mono.Unix.Native.Errno.EFAULT. [Edit]
OverflowExceptionerrno is Mono.Unix.Native.Errno.EOVERFLOW. [Edit]
UnauthorizedAccessExceptionerrno is Mono.Unix.Native.Errno.EACCES or Mono.Unix.Native.Errno.EISDIR. [Edit]
System.IO.DirectoryNotFoundExceptionerrno is Mono.Unix.Native.Errno.ENOTDIR. [Edit]
System.IO.FileNotFoundExceptionerrno is Mono.Unix.Native.Errno.ENOENT. [Edit]
System.IO.IOExceptionerrno is one of: Mono.Unix.Native.Errno.EIO, Mono.Unix.Native.Errno.ENOSPC, Mono.Unix.Native.Errno.ENOTEMPTY, Mono.Unix.Native.Errno.ENXIO, Mono.Unix.Native.Errno.EROFS, Mono.Unix.Native.Errno.ESPIPE. [Edit]
System.IO.PathTooLongExceptionerrno is Mono.Unix.Native.Errno.ENAMETOOLONG. [Edit]
Mono.Unix.UnixIOExceptionerrno is not any of the above error values. [Edit]

Remarks

If retval is -1, then this method is equivalent to calling UnixMarshal.ThrowExceptionForError (errno). Otherwise, nothing is done.

If the exception thrown is not a Mono.Unix.UnixIOException, then the exception's Exception.InnerException property will be set to a Mono.Unix.UnixIOException instance wrapping errno, if possible.

Note: ArgumentOutOfRangeException does not have its Exception.InnerException property set, as ArgumentOutOfRangeException does not provide a constructor that sets this property.

[Edit]

Requirements

Namespace: Mono.Unix
Assembly: Mono.Posix (in Mono.Posix.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0