// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. package caches import "errors" // 常用的几个错误 var ( ErrNotFound = errors.New("cache not found") ErrFileIsWriting = errors.New("the file is writing") ErrInvalidRange = errors.New("invalid range") ErrEntityTooLarge = errors.New("entity too large") ErrWritingUnavailable = errors.New("writing unavailable") ErrWritingQueueFull = errors.New("writing queue full") ErrTooManyOpenFiles = errors.New("too many open files") ) // CapacityError 容量错误 // 独立出来是为了可以在有些场合下可以忽略,防止产生没必要的错误提示数量太多 type CapacityError struct { err string } func NewCapacityError(err string) error { return &CapacityError{err: err} } func (this *CapacityError) Error() string { return this.err } // CanIgnoreErr 检查错误是否可以忽略 func CanIgnoreErr(err error) bool { if err == nil { return true } if err == ErrFileIsWriting || err == ErrEntityTooLarge || err == ErrWritingUnavailable || err == ErrWritingQueueFull || err == ErrTooManyOpenFiles { return true } _, ok := err.(*CapacityError) if ok { return true } return false }