2个不稳定版本
0.2.0 | 2024年3月3日 |
---|---|
0.1.0 | 2023年9月3日 |
#313 in 调试
每月 933 次下载
在 8 个crate中使用了(通过 veilid-core)
43KB
557 行
bugsalot
此crate提供用于错误处理的宏和方法。特别是,我希望获得崩溃(错误报告、易于调试等)的所有优点,同时避免所有缺点(丢失进度、愤怒的玩家等)。Rust的错误处理机制(Try
,?
,Result
等)很棒,但在处理实际错误时还有所欠缺。类似地,Rust的panic!
,.unwrap()
,.expect()
等在为错误提供上下文时表现尚可,但用于编写稳定软件时则不那么出色。此crate将尝试弥合这一差距。
分支 | 徽章 | 备注 |
---|---|---|
发布 | 稳定/发布版本 | |
master | 尚未发布的“已完成”内容。 | |
wip/* | “正在进行中” - 不完整,请自行承担风险。 | |
dead/* | 被遗弃的工作线程 |
平台
平台 | 断点 | 调试器 | CI | 稳定 | beta | 夜间 |
---|---|---|---|---|---|---|
Windows | ||||||
Android | ||||||
Linux | ||||||
(发布) | ||||||
FreeBSD | ||||||
NetBSD | ||||||
OS X | ||||||
iOS | ||||||
WASM |
快速入门
将以下bugsalot依赖项之一添加到你的Cargo.toml
[dependencies]
bugsalot = "0.2" # Or...
bugsalot = { version = "0.2", features = ["wasm-bindgen"] } # If using: wasm-pack
bugsalot = { version = "0.2", features = ["stdweb"] } # If using: cargo web build
use bugsalot::*;
fn main() {
let _ = debugger::wait_until_attached(None); // Wait for a debugger to be attached
loop {
let a : Option<i32> = Some(42);
let b : Result<i32, &'static str> = Err("Unavailable");
let a = expect!(a, "Unable to do something or other", return);
let b = expect!(b, "Unable to do something or other", break);
// Debugger will pause on the above line, continuing will break out of the loop
}
expect!(true, "Booleans work too");
}
许可证
根据以下之一授权
- Apache License,版本2.0(LICENSE-APACHE或http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则任何有意提交以包含在作品中的贡献,如Apache-2.0许可证中定义的,应按上述方式双授权,不附加任何额外条款或条件。
依赖项
~0–670KB
~12K SLoC