Documentation
¶
Index ¶
- Variables
- func GracefullyExitAppIf(ош error, format string, args ...interface{})
- func HandlePanicInRequestHandlerMiddleware() gin.HandlerFunc
- func LogicalPanicIf(subject interface{}, format string, args ...interface{})
- func ПаникаНаСервереИСтатус500Если(ош error, format string, args ...interface{})
- func ПаникаНаСервереСтатус500ИВыводОшибкиВСтандВыводЕсли(ош error, format string, args ...interface{})
- func ПаникаНаСервереСтатус500ИЗаписьОбАтакеЕсли(ош error, к *gin.Context, формат string, аргты ...interface{})
- func РезкоЗавершиПриложениеСКодомВозвратаЕсли(ош error, exitCode int, format string, args ...interface{})
- func СделайЗаписьОбАтаке(c *gin.Context, ош error)
- type ErrorWithContents
- type Исключение500
- type ОшПриложения
Constants ¶
This section is empty.
Variables ¶
var ErrDummy = errors.New("Фиктивная ошибка")
ErrDummy можно использовать в качестве первого аргумента DoSomethingIf(ош,...), если реальной ошибки нет
Functions ¶
func GracefullyExitAppIf ¶
GracefullyExitAppIf можно использовать, если ошибка считается не столь ужасной и мы можем позволить себе изящно выключить сервер. Ошибка не печатается
func HandlePanicInRequestHandlerMiddleware ¶
func HandlePanicInRequestHandlerMiddleware() gin.HandlerFunc
HandlePanicInRequestHandlerMiddleware возвращает промежуточное ПО что для нашего известного "блага" паника восстанавливается и пишет 500, в противном случае печатает сообщение о панике и выходит из приложения.
func LogicalPanicIf ¶
func LogicalPanicIf(subject interface{}, format string, args ...interface{})
LogicalPanicIf должен выполняться в обработчике веб-запросов и разворачивать только текущую горутину
func ПаникаНаСервереИСтатус500Если ¶
ПаникаНаСервереИСтатус500Если следует вызывать внутри обработчика http-запросов. Она прерывает обработку, разматывает стек и возвращает статус 500 с отформатированным сообщением
func ПаникаНаСервереСтатус500ИВыводОшибкиВСтандВыводЕсли ¶
func ПаникаНаСервереСтатус500ИВыводОшибкиВСтандВыводЕсли(ош error, format string, args ...interface{})
ПаникаНаСервереСтатус500ИВыводОшибкиВСтандВыводЕсли похож на Panic500, но регистрирует ошибки. Мы должны регистрировать ошибки, чтобы знать, что не так и для fail2ban ПРАВЬМЯ TODO - fail2ban и регистрация ошибок - это две разные вещи, напишите две функции!
func ПаникаНаСервереСтатус500ИЗаписьОбАтакеЕсли ¶
func ПаникаНаСервереСтатус500ИЗаписьОбАтакеЕсли(ош error, к *gin.Context, формат string, аргты ...interface{})
ПаникаНаСервереСтатус500ИЗаписьОбАтакеЕсли используется, когда ошибка может быть частью атаки. Мы собираемся поставить его на журнал (может быть разделённый журнал) в форме, понятной fail2ban
func РезкоЗавершиПриложениеСКодомВозвратаЕсли ¶
func РезкоЗавершиПриложениеСКодомВозвратаЕсли(ош error, exitCode int, format string, args ...interface{})
РезкоУпадиЕсли резко закрывает приложение
func СделайЗаписьОбАтаке ¶
СделайЗаписьОбАтаке регистрирует запрос, который является подозреваемой атакой (для fail2ban)
Types ¶
type ErrorWithContents ¶
type ErrorWithContents struct { Message string Contents interface{} }
ErrorWithContents это обёртка для любого значения. Может использоваться для преобразования паники в ошибку
func (ErrorWithContents) Error ¶
func (i ErrorWithContents) Error() string
type Исключение500 ¶
type Исключение500 struct { // Сообщение отправляется клиенту Message string }
Исключение500 означает, что произошло что-то относительно плохое, и мы хотим вернуть код ошибки 500. Но проблема локальна для текущего обработчика события, и наша программа продолжает работать. Используйте Исключение500 в качестве аргумента для panic. Для возврата значения ошибки рассмотрим AppErr
type ОшПриложения ¶
type ОшПриложения struct {
Message string
}
ОшПриложения - это ошибка на уровне приложения, которая не должна приводить к краху приложения. Она реализует интерфейс ошибок и должна использоваться в качестве возвращаемого значения. Для паники используйте Exception500
func ЯвиОшПриложения ¶
func ЯвиОшПриложения(format string, args ...interface{}) *ОшПриложения
ЯвиОшПриложения возвращает новый AppErr с сообщением
func (*ОшПриложения) Error ¶
func (be *ОшПриложения) Error() string