diff options
Diffstat (limited to 'src/pkg/os/error.go')
-rw-r--r-- | src/pkg/os/error.go | 94 |
1 files changed, 48 insertions, 46 deletions
diff --git a/src/pkg/os/error.go b/src/pkg/os/error.go index 5430a4b30..eca45dd26 100644 --- a/src/pkg/os/error.go +++ b/src/pkg/os/error.go @@ -8,73 +8,75 @@ import syscall "syscall" // An Error can represent any printable error condition. type Error interface { - String() string + String() string; } // A helper type that can be embedded or wrapped to simplify satisfying // Error. type ErrorString string + func (e ErrorString) String() string { - return string(e) + return string(e); } // NewError converts s to an ErrorString, which satisfies the Error interface. func NewError(s string) Error { - return ErrorString(s) + return ErrorString(s); } // Errno is the Unix error number. Names such as EINVAL are simple // wrappers to convert the error number into an Error. type Errno int64 + func (e Errno) String() string { - return syscall.Errstr(int(e)) + return syscall.Errstr(int(e)); } // Commonly known Unix errors. var ( - EPERM Error = Errno(syscall.EPERM); - ENOENT Error = Errno(syscall.ENOENT); - ESRCH Error = Errno(syscall.ESRCH); - EINTR Error = Errno(syscall.EINTR); - EIO Error = Errno(syscall.EIO); - ENXIO Error = Errno(syscall.ENXIO); - E2BIG Error = Errno(syscall.E2BIG); - ENOEXEC Error = Errno(syscall.ENOEXEC); - EBADF Error = Errno(syscall.EBADF); - ECHILD Error = Errno(syscall.ECHILD); - EDEADLK Error = Errno(syscall.EDEADLK); - ENOMEM Error = Errno(syscall.ENOMEM); - EACCES Error = Errno(syscall.EACCES); - EFAULT Error = Errno(syscall.EFAULT); - EBUSY Error = Errno(syscall.EBUSY); - EEXIST Error = Errno(syscall.EEXIST); - EXDEV Error = Errno(syscall.EXDEV); - ENODEV Error = Errno(syscall.ENODEV); - ENOTDIR Error = Errno(syscall.ENOTDIR); - EISDIR Error = Errno(syscall.EISDIR); - EINVAL Error = Errno(syscall.EINVAL); - ENFILE Error = Errno(syscall.ENFILE); - EMFILE Error = Errno(syscall.EMFILE); - ENOTTY Error = Errno(syscall.ENOTTY); - EFBIG Error = Errno(syscall.EFBIG); - ENOSPC Error = Errno(syscall.ENOSPC); - ESPIPE Error = Errno(syscall.ESPIPE); - EROFS Error = Errno(syscall.EROFS); - EMLINK Error = Errno(syscall.EMLINK); - EPIPE Error = Errno(syscall.EPIPE); - EAGAIN Error = Errno(syscall.EAGAIN); - EDOM Error = Errno(syscall.EDOM); - ERANGE Error = Errno(syscall.ERANGE); - EADDRINUSE Error = Errno(syscall.EADDRINUSE); - ECONNREFUSED Error = Errno(syscall.ECONNREFUSED); - ENAMETOOLONG Error = Errno(syscall.ENAMETOOLONG); + EPERM Error = Errno(syscall.EPERM); + ENOENT Error = Errno(syscall.ENOENT); + ESRCH Error = Errno(syscall.ESRCH); + EINTR Error = Errno(syscall.EINTR); + EIO Error = Errno(syscall.EIO); + ENXIO Error = Errno(syscall.ENXIO); + E2BIG Error = Errno(syscall.E2BIG); + ENOEXEC Error = Errno(syscall.ENOEXEC); + EBADF Error = Errno(syscall.EBADF); + ECHILD Error = Errno(syscall.ECHILD); + EDEADLK Error = Errno(syscall.EDEADLK); + ENOMEM Error = Errno(syscall.ENOMEM); + EACCES Error = Errno(syscall.EACCES); + EFAULT Error = Errno(syscall.EFAULT); + EBUSY Error = Errno(syscall.EBUSY); + EEXIST Error = Errno(syscall.EEXIST); + EXDEV Error = Errno(syscall.EXDEV); + ENODEV Error = Errno(syscall.ENODEV); + ENOTDIR Error = Errno(syscall.ENOTDIR); + EISDIR Error = Errno(syscall.EISDIR); + EINVAL Error = Errno(syscall.EINVAL); + ENFILE Error = Errno(syscall.ENFILE); + EMFILE Error = Errno(syscall.EMFILE); + ENOTTY Error = Errno(syscall.ENOTTY); + EFBIG Error = Errno(syscall.EFBIG); + ENOSPC Error = Errno(syscall.ENOSPC); + ESPIPE Error = Errno(syscall.ESPIPE); + EROFS Error = Errno(syscall.EROFS); + EMLINK Error = Errno(syscall.EMLINK); + EPIPE Error = Errno(syscall.EPIPE); + EAGAIN Error = Errno(syscall.EAGAIN); + EDOM Error = Errno(syscall.EDOM); + ERANGE Error = Errno(syscall.ERANGE); + EADDRINUSE Error = Errno(syscall.EADDRINUSE); + ECONNREFUSED Error = Errno(syscall.ECONNREFUSED); + ENAMETOOLONG Error = Errno(syscall.ENAMETOOLONG); ) // PathError records an error and the operation and file path that caused it. type PathError struct { - Op string; - Path string; - Error Error; + Op string; + Path string; + Error Error; } func (e *PathError) String() string { @@ -83,8 +85,8 @@ func (e *PathError) String() string { // SyscallError records an error from a specific system call. type SyscallError struct { - Syscall string; - Errno Errno; + Syscall string; + Errno Errno; } func (e *SyscallError) String() string { @@ -98,5 +100,5 @@ func NewSyscallError(syscall string, errno int) Error { if errno == 0 { return nil; } - return &SyscallError{syscall, Errno(errno)} + return &SyscallError{syscall, Errno(errno)}; } |