# bevy_mod_sysfail **Repository Path**: happydpc/bevy_mod_sysfail ## Basic Information - **Project Name**: bevy_mod_sysfail - **Description**: “bevy_mod_sysfail”是一个针对 Bevy 游戏引擎的插件,旨在简化和增强系统故障处理的机制。该插件允许开发者在游戏运行时对系统失败进行监控和管理,以便更容易地定位和调试问题。通过引入更高效的错误处理流程,开发者可以在游戏中实现更加稳定的表现和更好的用户体验。此模块的设计目标是使故障处理系统化,提高游戏项目的鲁棒性并减少潜在的崩溃和异常情况。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-03 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Bevy system error handling [![Bevy tracking](https://img.shields.io/badge/Bevy%20tracking-released%20version-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking) [![Latest version](https://img.shields.io/crates/v/bevy_mod_sysfail.svg)](https://crates.io/crates/bevy_mod_sysfail) [![Apache 2.0](https://img.shields.io/badge/license-Apache-blue.svg)](./LICENSE) [![Documentation](https://docs.rs/bevy_mod_sysfail/badge.svg)](https://docs.rs/bevy_mod_sysfail/) Decorate your bevy system with the [`sysfail`] macro attribute to handle failure. #### Before ```rust use bevy::prelude::*; use bevy::utils::Duration; use thiserror::Error; #[derive(Error, Debug)] enum GizmoError { #[error("A Gizmo error")] Error, } #[derive(Debug, PartialEq, Eq, Hash, SystemSet, Clone)] enum TransformGizmoSystem { Drag, Place } fn main() { let mut app = App::new(); app.add_plugins(bevy::time::TimePlugin) .add_systems(Update, ( drag_gizmo .pipe(print_gizmo_error) .in_set(TransformGizmoSystem::Drag), delete_gizmo .pipe(|In(_)| {}) .after(TransformGizmoSystem::Place), place_gizmo .pipe(print_gizmo_error) .in_set(TransformGizmoSystem::Place) .after(TransformGizmoSystem::Drag), )); app.update(); } fn print_gizmo_error( In(result): In>>, mut last_error_occurence: Local>, time: Res