Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张磊
/
FileStorageBeego
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
54ef08c0
authored
2013-12-05 21:31:18 -0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge pull request #342 from vadimi/master
Improve unhandled error handling in prod mode
2 parents
b6bf7121
c2079276
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
2 deletions
router.go
router.go
View file @
54ef08c
...
...
@@ -368,8 +368,8 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
if
_
,
ok
:=
err
.
(
middleware
.
HTTPException
);
ok
{
// catch intented errors, only for HTTP 4XX and 5XX
}
else
{
errstr
:=
fmt
.
Sprint
(
err
)
if
handler
,
ok
:=
middleware
.
ErrorMaps
[
errstr
];
ok
&&
ErrorsShow
{
handler
:=
p
.
getErrorHandler
(
fmt
.
Sprint
(
err
)
)
if
ErrorsShow
{
handler
(
rw
,
r
)
}
else
{
if
!
RecoverPanic
{
...
...
@@ -865,6 +865,24 @@ Admin:
}
}
// there always should be error handler that sets error code accordingly for all unhandled errors
// in order to have custom UI for error page it's necessary to override "500" error
func
(
p
*
ControllerRegistor
)
getErrorHandler
(
errorCode
string
)
func
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
handler
:=
middleware
.
SimpleServerError
ok
:=
true
if
errorCode
!=
""
{
handler
,
ok
=
middleware
.
ErrorMaps
[
errorCode
]
if
!
ok
{
handler
,
ok
=
middleware
.
ErrorMaps
[
"500"
]
}
if
!
ok
||
handler
==
nil
{
handler
=
middleware
.
SimpleServerError
}
}
return
handler
}
//responseWriter is a wrapper for the http.ResponseWriter
//started set to true if response was written to then don't execute other handler
type
responseWriter
struct
{
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment