forked from vcabbage/amqp
-
Notifications
You must be signed in to change notification settings - Fork 61
/
Copy patherrors.go
131 lines (109 loc) · 3.99 KB
/
errors.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package amqp
import (
"github.com/Azure/go-amqp/internal/encoding"
)
// ErrCond is an AMQP defined error condition.
// See http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-amqp-error for info on their meaning.
type ErrCond = encoding.ErrCond
// Error Conditions
const (
// AMQP Errors
ErrCondDecodeError ErrCond = "amqp:decode-error"
ErrCondFrameSizeTooSmall ErrCond = "amqp:frame-size-too-small"
ErrCondIllegalState ErrCond = "amqp:illegal-state"
ErrCondInternalError ErrCond = "amqp:internal-error"
ErrCondInvalidField ErrCond = "amqp:invalid-field"
ErrCondNotAllowed ErrCond = "amqp:not-allowed"
ErrCondNotFound ErrCond = "amqp:not-found"
ErrCondNotImplemented ErrCond = "amqp:not-implemented"
ErrCondPreconditionFailed ErrCond = "amqp:precondition-failed"
ErrCondResourceDeleted ErrCond = "amqp:resource-deleted"
ErrCondResourceLimitExceeded ErrCond = "amqp:resource-limit-exceeded"
ErrCondResourceLocked ErrCond = "amqp:resource-locked"
ErrCondUnauthorizedAccess ErrCond = "amqp:unauthorized-access"
// Connection Errors
ErrCondConnectionForced ErrCond = "amqp:connection:forced"
ErrCondConnectionRedirect ErrCond = "amqp:connection:redirect"
ErrCondFramingError ErrCond = "amqp:connection:framing-error"
// Session Errors
ErrCondErrantLink ErrCond = "amqp:session:errant-link"
ErrCondHandleInUse ErrCond = "amqp:session:handle-in-use"
ErrCondUnattachedHandle ErrCond = "amqp:session:unattached-handle"
ErrCondWindowViolation ErrCond = "amqp:session:window-violation"
// Link Errors
ErrCondDetachForced ErrCond = "amqp:link:detach-forced"
ErrCondLinkRedirect ErrCond = "amqp:link:redirect"
ErrCondMessageSizeExceeded ErrCond = "amqp:link:message-size-exceeded"
ErrCondStolen ErrCond = "amqp:link:stolen"
ErrCondTransferLimitExceeded ErrCond = "amqp:link:transfer-limit-exceeded"
)
// Error is an AMQP error.
type Error = encoding.Error
// LinkError is returned by methods on Sender/Receiver when the link has closed.
type LinkError struct {
// RemoteErr contains any error information provided by the peer if the peer detached the link.
RemoteErr *Error
inner error
}
// Error implements the error interface for LinkError.
func (e *LinkError) Error() string {
if e.RemoteErr == nil && e.inner == nil {
return "amqp: link closed"
} else if e.RemoteErr != nil {
return e.RemoteErr.Error()
}
return e.inner.Error()
}
// Unwrap returns the RemoteErr, if any.
func (e *LinkError) Unwrap() error {
if e.RemoteErr == nil {
return nil
}
return e.RemoteErr
}
// ConnError is returned by methods on Conn and propagated to Session and Senders/Receivers
// when the connection has been closed.
type ConnError struct {
// RemoteErr contains any error information provided by the peer if the peer closed the AMQP connection.
RemoteErr *Error
inner error
}
// Error implements the error interface for ConnError.
func (e *ConnError) Error() string {
if e.RemoteErr == nil && e.inner == nil {
return "amqp: connection closed"
} else if e.RemoteErr != nil {
return e.RemoteErr.Error()
}
return e.inner.Error()
}
// Unwrap returns the RemoteErr, if any.
func (e *ConnError) Unwrap() error {
if e.RemoteErr == nil {
return nil
}
return e.RemoteErr
}
// SessionError is returned by methods on Session and propagated to Senders/Receivers
// when the session has been closed.
type SessionError struct {
// RemoteErr contains any error information provided by the peer if the peer closed the session.
RemoteErr *Error
inner error
}
// Error implements the error interface for SessionError.
func (e *SessionError) Error() string {
if e.RemoteErr == nil && e.inner == nil {
return "amqp: session closed"
} else if e.RemoteErr != nil {
return e.RemoteErr.Error()
}
return e.inner.Error()
}
// Unwrap returns the RemoteErr, if any.
func (e *SessionError) Unwrap() error {
if e.RemoteErr == nil {
return nil
}
return e.RemoteErr
}