2010-12-03 05:34:57 +01:00
|
|
|
// 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.
|
|
|
|
|
|
|
|
package os
|
|
|
|
|
|
|
|
// PathError records an error and the operation and file path that caused it.
|
|
|
|
type PathError struct {
|
2011-12-03 03:17:34 +01:00
|
|
|
Op string
|
|
|
|
Path string
|
|
|
|
Err error
|
2010-12-03 05:34:57 +01:00
|
|
|
}
|
|
|
|
|
2011-12-03 03:17:34 +01:00
|
|
|
func (e *PathError) Error() string { return e.Op + " " + e.Path + ": " + e.Err.Error() }
|
2012-03-02 17:38:43 +01:00
|
|
|
|
|
|
|
// SyscallError records an error from a specific system call.
|
|
|
|
type SyscallError struct {
|
|
|
|
Syscall string
|
|
|
|
Err error
|
|
|
|
}
|
|
|
|
|
|
|
|
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 {
|
|
|
|
if err == nil {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
return &SyscallError{syscall, err}
|
|
|
|
}
|