Fix failing build for a Chinese version because of template tags
This commit is contained in:
18
zh/12.2.md
18
zh/12.2.md
@@ -1,8 +1,9 @@
|
||||
{% raw %}
|
||||
# 12.2 网站错误处理
|
||||
我们的Web应用一旦上线之后,那么各种错误出现的概率都有,Web应用日常运行中可能出现多种错误,具体如下所示:
|
||||
|
||||
- 数据库错误:指与访问数据库服务器或数据相关的错误。例如,以下可能出现的一些数据库错误。
|
||||
|
||||
|
||||
- 连接错误:这一类错误可能是数据库服务器网络断开、用户名密码不正确、或者数据库不存在。
|
||||
- 查询错误:使用的SQL非法导致错误,这样子SQL错误如果程序经过严格的测试应该可以避免。
|
||||
- 数据错误:数据库中的约束冲突,例如一个唯一字段中插入一条重复主键的值就会报错,但是如果你的应用程序在上线之前经过了严格的测试也是可以避免这类问题。
|
||||
@@ -27,9 +28,9 @@
|
||||
错误处理其实我们已经在十一章第一小节里面有过介绍如何设计错误处理,这里我们再从一个例子详细的讲解一下,如何来处理不同的错误:
|
||||
|
||||
- 通知用户出现错误:
|
||||
|
||||
|
||||
通知用户在访问页面的时候我们可以有两种错误:404.html和error.html,下面分别显示了错误页面的源码:
|
||||
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
@@ -51,7 +52,7 @@
|
||||
</body>
|
||||
</html>
|
||||
另一个源码:
|
||||
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
@@ -72,9 +73,9 @@
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
404的错误处理逻辑,如果是系统的错误也是类似的操作,同时我们看到在:
|
||||
|
||||
|
||||
func (p *MyMux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
if r.URL.Path == "/" {
|
||||
sayhelloName(w, r)
|
||||
@@ -90,7 +91,7 @@
|
||||
ErrorInfo := "文件找不到" //获取当前用户信息
|
||||
t.Execute(w, ErrorInfo) //执行模板的merger操作
|
||||
}
|
||||
|
||||
|
||||
func SystemError(w http.ResponseWriter, r *http.Request) {
|
||||
log.Critical("系统错误") //系统错误触发了Critical,那么不仅会记录日志还会发送邮件
|
||||
t, _ = t.ParseFiles("tmpl/error.html", nil) //解析模板文件
|
||||
@@ -109,7 +110,7 @@
|
||||
username = ""
|
||||
}
|
||||
}()
|
||||
|
||||
|
||||
username = User[uid]
|
||||
return
|
||||
}
|
||||
@@ -122,3 +123,4 @@
|
||||
* [目录](<preface.md>)
|
||||
* 上一章: [应用日志](<12.1.md>)
|
||||
* 下一节: [应用部署](<12.3.md>)
|
||||
{% endraw %}
|
||||
|
||||
Reference in New Issue
Block a user