failure

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2026 License: MIT Imports: 4 Imported by: 0

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: 默认失败分析器实例

Jump to

Keyboard shortcuts

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