Nuestra aplicacion on-line la aplicación web, que se ha producido tiene la probabilidad de errores diferentes, las aplicaciones web pueden ser una variedad de errores de operación diaria, específicamente de la siguiente manera:
-
Error de base de datos: se refiere al acceso al servidor de base de datos o errores relacionados con los datos. Por ejemplo, lo siguiente puede ocurrir algún error de base de datos.
-
Error de conexión: Este tipo de error puede ser desconectado del servidor de base de datos de red, el nombre de usuario, la contraseña es incorrecta, o la base de datos no existe.
-
Query Error: uso ilegal de SQL provoca un error como este error SQL si el programa a través de rigurosas pruebas debe ser evitado.
-
Error de datos: base de datos de violación de restricción, tal como un campo único para insertar un duplicado valores de clave principal se quejará, pero si su solicitud en línea a través de una prueba rigurosa antes también evitar este tipo de problemas.
-
Tiempo de ejecución Error de aplicación: Este tipo de margen de error es muy amplio, que abarca casi todos aparecen en el error de código. Errores de aplicación posibles son las siguientes:
-
No se permite la aplicación para leer el archivo no existe o no tiene permiso para leer el archivo, o por escrito a un archivo para escribir, lo que resultará en un error: El sistema de archivos y los permisos. Si la aplicación lee el formato de archivo no es correcto se le dará, como los archivos de configuración debe estar en formato de configuración INI, y puso en formato JSON un error.
-
Las aplicaciones de terceros: Si nuestros interfaces de aplicaciones acopladas con otros programas de terceros, como los artículos publicados después de la aplicación llama automáticamente la interfaz de micro-blogging pelo, por lo que la interfaz deben ejecutar para completar la función publicamos un articulo.
-
Errores HTTP: Estos errores se basan en errores en la solicitud del usuario, el más común es el error 404. Si bien puede haber muchos errores diferentes, pero también uno de los errores más comunes de error 401 Unauthorized (se requiere autenticación para acceder al recurso), error 403 Forbidden (no permita que los usuarios accedan a los recursos) y de error 503 (error interno del programa).
-
Error del sistema operativo: Estos errores se deben a la aplicación en el error del sistema operativo causó que operan principalmente los recursos del sistema se asignan a través de, lo que lleva a los accidentes, así como el disco del sistema operativo está llena, por lo que es imposible escribir, por lo que causará un gran cantidad de errores.
-
Error de red: error hace referencia a dos aspectos, uno es la aplicación cuando el usuario solicita una desconexión de la red, por lo tanto interrumpir la conexión, este error no provoca la aplicación se bloquee, pero va a afectar el efecto del acceso de los usuarios; otro, por un lado es una aplicación para leer los datos en otras redes, otro de desconexión de la red puede hacer que leer los fallos, tal aplicación tiene que hacer la prueba efectiva, para evitar este tipo de problemas surgen en caso de que los errores en el programa.
Manipulación en la realización de error, tenemos que ser en el tratamiento de errores claros es lo que usted quiere lograr, sistema de manejo de errores debe realizar las tareas siguientes:
-
Acceso Notificación errores del usuario: la cuestión es que se produce un error del sistema o un error del usuario, el usuario debe ser consciente de las aplicaciones Web es un problema, la solicitud actual, el usuario 's no se pudo completar correctamente. Por ejemplo, una solicitud de un error del usuario, se muestra una página de error unificado (404.html). Cuando se produce un error de sistema, pasamos por un sistema de visualización de la página de error personalizado está temporalmente no disponible tipo de página de error (error.html).
-
Error Record: error del sistema, por lo general lo que llamamos la función para devolver el caso err no es nulo, puede utilizar la sección delantera describe el registro del sistema en un archivo de registro. Si se trata de un error fatal, el administrador del sistema recibe una notificación por correo electrónico. General 404 este tipo de errores no es necesario para enviar mensajes al sistema de registro sólo tiene que grabar.
-
Retroceso de la solicitud actual: Si un usuario solicita se produjeron durante un error del servidor, a continuación, la necesidad de revertir la operación se ha completado. Veamos un ejemplo: un sistema guardará el usuario envía el formulario a la base de datos, y presentar estos datos a un servidor de terceros, pero servidor de terceros colgado, lo que resultó en un error, entonces la forma previamente almacenada datos a una base de datos deben eliminar (void debe ser informado), y deben informar al usuario del error del sistema.
-
Asegúrese de que el programa existente se puede ejecutar para servir: Sabemos que nadie puede garantizar que el programa será capaz de tener un funcionamiento normal, si un día el programa se bloquea, entonces tenemos que registrar el error, y luego dejar de inmediato la programa en marcha de nuevo, dejar que el programa siga prestando servicios y, a continuación, notificar al administrador del sistema a través de los registros para identificar los problemas.
Manejo de errores De hecho, tenemos once capítulos en la primera sección, que ha sido la forma de diseñar el tratamiento de errores, aquí tenemos otro ejemplo de una explicación detallada acerca de cómo controlar errores diferentes:
- Notificar a los errores de los usuarios:
Notificar al usuario cuando se accede a la página que podemos tener dos tipos de errores: 404.html y Error.html, los siguientes eran la fuente de la página de error muestra:
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Page Not Found
</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="container">
<div class="row">
<div class="span10">
<div class="hero-unit">
<h1> 404! </h1>
<p>{{.ErrorInfo}}</p>
</div>
</div>
<!--/span-->
</div>
</div>
</body>
</html>
Another source:
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>system error page
</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="container">
<div class="row">
<div class="span10">
<div class="hero-unit">
<h1> system is temporarily unavailable ! </h1>
<p>{{.ErrorInfo}}</p>
</div>
</div>
<!--/span-->
</div>
</div>
</body>
</html>
El manejo de errores de lógica 404, un error si la operación del sistema es similar, y vemos que:
func (p *MyMux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/" {
sayhelloName(w, r)
return
}
NotFound404(w, r)
return
}
func NotFound404(w http.ResponseWriter, r *http.Request) {
log.Error(" page not found") //error logging
t, _ = t.ParseFiles("tmpl/404.html", nil) //parse the template file
ErrorInfo := " File not found " //Get the current user information
t.Execute(w, ErrorInfo) //execute the template merger operation
}
func SystemError(w http.ResponseWriter, r *http.Request) {
log.Critical(" System Error") //system error triggered Critical, then logging will not only send a message
t, _ = t.ParseFiles("tmpl/error.html", nil) //parse the template file
ErrorInfo := " system is temporarily unavailable " //Get the current user information
t.Execute(w, ErrorInfo) //execute the template merger operation
}
Sabemos que en muchas otras lenguas se trate ... palabras clave de captura utilizados para captar la situación inusual, pero de hecho, muchos errores se puede esperar que se produzca sin la necesidad de tratamiento de excepciones, debe ser manejado como un error, que es por qué el lenguaje Go utilizando la función devuelve un error de diseño, estas funciones no se asuste, por ejemplo, si no se encuentra un archivo, os.Open devuelve un error, no se preocupe; si se rompe la conexión de red a una escritura de los datos, la serie net.Conn Escriba la función Write devuelve un error, que no cunda el pánico. Estos estados donde tales procedimientos son de esperar. Usted sabe que estas operaciones pueden fallar, se devuelve un error porque el diseñador ha utilizado una indicación clara de esto. Esto es se puede esperar el error anteriormente indicado que se produzca.
Pero hay una situación, hay algunas operaciones casi imposibles de fallar, y en ciertos casos, no hay manera de devolver un error y no puede continuar, tal situación debe entrar en pánico. Por ejemplo: si un programa para calcular x [j], pero j límites, y esta parte del código será llevar al pánico, como éste error grave inesperado provocará el pánico, por defecto va a matar el proceso, lo que permite un parte del código que se está ejecutando desde el error se produjo el pánico goroutine operación de recuperación, la ocurrencia de pánico, la función de esta parte del código y el código subyacente no se ejecutará, que está especialmente diseñado para que Go, como algo separado de los errores y, de hecho pánico manejo anormal excepción. En el siguiente código, se espera conseguir el Usuario a través de la información de UID nombre de usuario, pero si el uid cruzó la línea de una excepción, esta vez si no recuperamos mecanismo, será asesinado el proceso, lo que resulta en el programa de no-servicio. Así que con el fin de procesar la robustez, en algunos lugares que establecer recuperar mecanismo.
func GetUser(uid int) (username string) {
defer func() {
if x := recover(); x != nil {
username = ""
}
}()
username = User[uid]
return
}
Lo anterior describe la diferencia entre los errores y excepciones, así que cuando desarrollamos programas cómo diseñarlo? Las reglas son simples: Si se define una función puede fallar, debería devolver un error. Cuando llamo otra función paquete 's, si esta función se implementa bien, yo no tengo que preocuparme de que se asuste, a menos que exista una verdadera excepción a suceder, ni siquiera que yo debería ir con ella. El pánico y recuperar para su propio paquete de desarrollo que implementa la lógica de diseñar para algunos casos especiales.
En esta sección se resume cuando desplegamos aplicación web como manejar varios errores: errores de error de red, error de base de datos, sistemas operativos, etc, cuando se produce un error, nuestro programa de cómo manejar correctamente: Mostrar la interfaz de error descriptivo, rollback, la tala, notificar al administrador y otras operaciones, y finalmente explica cómo manejar correctamente los errores y excepciones. Errores y excepciones de programas generales confunden fácilmente, pero los errores y excepciones en Go es una distinción clara, por lo que nos dicen en un programa diseñado para controlar los errores y las excepciones deben seguir los principios de cómo.
- Directory
- Previous section: Logs
- Next section: Deployment