| // Copyright 2009 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| // Portable analogs of some common system call errors. |
| ErrInvalid = errors.New("invalid argument") |
| ErrPermission = errors.New("permission denied") |
| ErrExist = errors.New("file already exists") |
| ErrNotExist = errors.New("file does not exit") |
| // PathError records an error and the operation and file path that caused it. |
| func (e *PathError) Error() string { return e.Op + " " + e.Path + ": " + e.Err.Error() } |
| // SyscallError records an error from a specific system call. |
| type SyscallError struct { |
| func (e *SyscallError) Error() string { return e.Syscall + ": " + e.Err.Error() } |
| // NewSyscallError returns, as an error, a new SyscallError |
| // with the given system call name and error details. |
| // As a convenience, if err is nil, NewSyscallError returns nil. |
| func NewSyscallError(syscall string, err error) error { |
| return &SyscallError{syscall, err} |