Documentation
¶
Overview ¶
Package failure 提供应用启动失败分析功能,用于 enhance 框架。
该包定义了失败分析器的接口和多种实现,在应用启动失败时提供友好的错误提示, 帮助开发者快速定位问题。参考 Spring Boot 的 FailureAnalyzer 设计。
架构设计 ¶
- FailureAnalyzer: 失败分析器接口,定义错误分析和判断方法
- FailureAnalysis: 失败分析结果,包含错误描述、建议动作和相关组件
- DefaultFailureAnalyzer: 默认失败分析器,分析常见启动错误(端口占用、权限拒绝、文件未找到)
- GetSuggestions: 根据分析结果生成修复建议
核心功能 ¶
- 错误分析: 在应用启动失败时分析错误类型并生成结构化报告
- 友好提示: 将技术错误转换为开发者可操作的建议
- 可扩展性: 通过 FailureAnalyzer 接口支持自定义分析器
使用方式 ¶
使用默认分析器:
analyzer := failure.NewDefaultFailureAnalyzer()
if analyzer.Supports(err) {
result := analyzer.Analyze(err)
suggestions := failure.GetSuggestions(result)
}
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatFailureAnalysis ¶
func FormatFailureAnalysis(analysis *FailureAnalysis) string
FormatFailureAnalysis 格式化失败分析结果为可读字符串。
将分析结果格式化为包含描述、建议动作和修复建议的多行字符串。
参数:
- analysis: 失败分析结果,不能为 nil
返回:
- string: 格式化后的字符串
func GetSuggestions ¶
func GetSuggestions(analysis *FailureAnalysis) []string
GetSuggestions 根据失败分析结果生成修复建议列表。
根据分析结果中的 Components 和 Description 生成针对性的建议。 返回值为建议字符串切片,按优先级排序。
参数:
- analysis: 失败分析结果,不能为 nil
返回:
- []string: 修复建议列表
Types ¶
type DefaultFailureAnalyzer ¶
type DefaultFailureAnalyzer struct{}
DefaultFailureAnalyzer 默认失败分析器。
分析常见的应用启动错误,包括端口占用、权限拒绝和文件未找到。 每种错误类型都提供详细的描述和可操作的建议。
func (*DefaultFailureAnalyzer) Analyze ¶
func (a *DefaultFailureAnalyzer) Analyze(err error) *FailureAnalysis
Analyze 分析错误并返回失败分析结果。
根据错误类型生成对应的 FailureAnalysis,包含错误描述、建议动作和相关组件。
func (*DefaultFailureAnalyzer) Supports ¶
func (a *DefaultFailureAnalyzer) Supports(err error) bool
Supports 判断是否支持分析该错误。
支持以下错误类型:
- 端口占用(address already in use)
- 权限拒绝(permission denied)
- 文件未找到(file not found / no such file)
type FailureAnalysis ¶
type FailureAnalysis struct {
// Description 错误描述,说明发生了什么问题。
Description string
// Action 建议操作,说明开发者应该采取什么措施。
Action string
// Exception 原始异常,保留原始错误以便调试。
Exception error
// Components 相关组件列表,标识涉及的组件或模块。
Components []string
}
FailureAnalysis 失败分析结果。
参考 Spring Boot 的 FailureAnalysis,在应用启动失败时提供结构化的错误信息。 包含错误描述、建议动作、原始异常和相关组件。
type FailureAnalyzer ¶
type FailureAnalyzer interface {
// Analyze 分析错误并返回失败分析结果。
//
// 参数 err 为需要分析的错误。
// 返回 FailureAnalysis 包含错误描述、建议动作和相关组件信息。
Analyze(err error) *FailureAnalysis
// Supports 判断是否支持分析该错误。
//
// 参数 err 为需要判断的错误。
// 返回 true 表示可以分析该错误,false 表示不支持。
Supports(err error) bool
}
FailureAnalyzer 失败分析器接口。
参考 Spring Boot 的 FailureAnalyzer。 在应用启动失败时分析错误,生成结构化的失败分析结果。
func NewDefaultFailureAnalyzer ¶
func NewDefaultFailureAnalyzer() FailureAnalyzer
NewDefaultFailureAnalyzer 创建默认失败分析器。
返回值:
- FailureAnalyzer: 默认失败分析器实例