error_handling/
error_handling.rs1use bark_rs::{BarkError, BarkMessage, SyncBarkClient};
2
3fn main() {
4 println!("🚨 演示错误处理");
5
6 let client = SyncBarkClient::new("https://api.day.app");
8
9 let message_without_key = BarkMessage::builder()
11 .title("错误演示")
12 .body("这个消息没有设备密钥")
13 .build();
14
15 match client.send(&message_without_key) {
16 Ok(_) => println!("❌ 意外成功"),
17 Err(BarkError::MissingDeviceKey) => {
18 println!("✅ 正确捕获到缺少设备密钥错误");
19 }
20 Err(e) => println!("❓ 其他错误: {}", e),
21 }
22
23 let result = client
25 .message()
26 .device_key("QJ48vPutCAsPW2B6pE2A3a")
27 .title("正确的消息")
28 .body("这个消息有设备密钥")
29 .send();
30
31 match result {
32 Ok(response) => {
33 println!(
34 "✅ 消息发送成功: code={}, message={}",
35 response.code, response.message
36 );
37 }
38 Err(BarkError::RequestError(e)) => {
39 println!("❌ 网络请求错误: {}", e);
40 }
41 Err(BarkError::MissingDeviceKey) => {
42 println!("❌ 缺少设备密钥");
43 }
44 Err(BarkError::SerializationError(e)) => {
45 println!("❌ 序列化错误: {}", e);
46 }
47 Err(BarkError::InvalidUrl) => {
48 println!("❌ 无效URL");
49 }
50 }
51
52 println!("🎉 错误处理演示完成!");
53}