apperror

package
v0.0.0-...-8bc9508 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 29, 2023 License: BSD-3-Clause Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDummy = errors.New("Фиктивная ошибка")

ErrDummy можно использовать в качестве первого аргумента DoSomethingIf(ош,...), если реальной ошибки нет

Functions

func GracefullyExitAppIf

func GracefullyExitAppIf(ош error, format string, args ...interface{})

GracefullyExitAppIf можно использовать, если ошибка считается не столь ужасной и мы можем позволить себе изящно выключить сервер. Ошибка не печатается

func HandlePanicInRequestHandlerMiddleware

func HandlePanicInRequestHandlerMiddleware() gin.HandlerFunc

HandlePanicInRequestHandlerMiddleware возвращает промежуточное ПО что для нашего известного "блага" паника восстанавливается и пишет 500, в противном случае печатает сообщение о панике и выходит из приложения.

func LogicalPanicIf

func LogicalPanicIf(subject interface{}, format string, args ...interface{})

LogicalPanicIf должен выполняться в обработчике веб-запросов и разворачивать только текущую горутину

func ПаникаНаСервереИСтатус500Если

func ПаникаНаСервереИСтатус500Если(ош error, format string, args ...interface{})

ПаникаНаСервереИСтатус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 СделайЗаписьОбАтаке

func СделайЗаписьОбАтаке(c *gin.Context, ош error)

СделайЗаписьОбАтаке регистрирует запрос, который является подозреваемой атакой (для 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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL