vweb: add custom errors (#9519)
parent
28018c6fc9
commit
e9c7cd0c9f
|
@ -69,6 +69,16 @@ pub:
|
|||
data string
|
||||
}
|
||||
|
||||
struct UnexpectedExtraAttributeError {
|
||||
msg string
|
||||
code int
|
||||
}
|
||||
|
||||
struct MultiplePathAttributesError {
|
||||
msg string = 'Expected at most one path attribute'
|
||||
code int
|
||||
}
|
||||
|
||||
// declaring init_once in your App struct is optional
|
||||
pub fn (ctx Context) init_once() {}
|
||||
|
||||
|
@ -467,7 +477,7 @@ fn parse_attrs(name string, attrs []string) ?([]http.Method, string) {
|
|||
}
|
||||
if attr.starts_with('/') {
|
||||
if path != '' {
|
||||
return error('Expected at most one path attribute')
|
||||
return IError(&MultiplePathAttributesError{})
|
||||
}
|
||||
path = attr
|
||||
x.delete(i)
|
||||
|
@ -476,7 +486,9 @@ fn parse_attrs(name string, attrs []string) ?([]http.Method, string) {
|
|||
i++
|
||||
}
|
||||
if x.len > 0 {
|
||||
return error('Encountered unexpected extra attributes: $x')
|
||||
return IError(&UnexpectedExtraAttributeError{
|
||||
msg: 'Encountered unexpected extra attributes: $x'
|
||||
})
|
||||
}
|
||||
if methods.len == 0 {
|
||||
methods = [http.Method.get]
|
||||
|
|
Loading…
Reference in New Issue