news 2026/6/15 16:17:51

[todo]try catch no | result yes

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[todo]try catch no | result yes

try/catch的异常抛出是隐式失控的错误流,把错误处理和正常逻辑强行割裂,还容易漏处理

Rust/Haskell的类型化错误封装(Result/Maybe)是显式把错误纳入类型系统,让错误处理成为编译期强制的逻辑分支,从根源避免漏处理且代码流更清晰

C++(try/catch 写法)

#include <iostream>

#include <stdexcept>

// 除法函数,错误时抛异常

int div(int a, int b) {

if (b == 0) throw std::runtime_error("除零错误");

return a / b;

}

int main() {

int a = 10, b = 0;

// 显式包裹才会捕获,漏写try/catch直接崩溃

try {

int res = div(a, b);

std::cout << res << std::endl;

} catch (const std::runtime_error& e) { // 需匹配异常类型,漏匹配仍崩溃

std::cerr << "错误:" << e.what() << std::endl;

}

return 0;

}

核心问题:错误是「运行时抛射」,编译期无提示,漏捕获/类型匹配错直接程序崩溃,错误处理与正常逻辑割裂。

Rust(Result 类型封装)

// 除法函数,返回Result类型:Ok(结果) / Err(错误信息)

fn div(a: i32, b: i32) -> Result<i32, &'static str> {

if b == 0 {

Err("除零错误") // 错误作为返回值,而非抛射

} else {

Ok(a / b)

}

}

fn main() {

let a = 10;

let b = 0;

// 编译期强制处理错误:不处理Result,编译器直接报错

match div(a, b) {

Ok(res) => println!("{}", res),

Err(e) => eprintln!("错误:{}", e),

}

// 也可使用?/unwrap等语法,仍需显式处理,无隐式失控

// let res = div(a, b).unwrap(); // 主动unwrap,错误时panic(显式而非隐式)

}

优势:错误是「类型化返回值」,编译期强制处理,不写错误分支代码无法编译,错误流与正常逻辑统一在类型系统中。

对比

- try/catch:错误藏在背后突然跳出来,你得主动“守着”(写try)才接得住,没守到就直接翻车;

- Result类型:错误明着递到你手上,编译器逼着你“接过来处理”,不接连门都不让出(编译不通过

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 11:22:17

RocketMQ Hook 实现

1. 前言 在分布式系统中&#xff0c;RocketMQ 不仅仅是一个消息传输管道&#xff0c;它还提供了强大的插件化扩展能力。RocketMQ Hook&#xff08;钩子&#xff09; 机制类似于 Spring 的 AOP&#xff08;面向切面编程&#xff09;或 Servlet Filter。它允许开发者在消息发送前…

作者头像 李华
网站建设 2026/6/15 15:56:17

YOLO26优化:多尺度提取能力 | 多尺度注意力网络(HSAN)通过分组卷积和联合通道-空间注意力机制,增强多尺度特征表达能力

💡💡💡问题点:在检测不同尺寸的图像时,传统方法常因无法有效融合多尺度信息而漏检小型或远距离目标 。 💡💡💡加强不同尺度特征提取能力:多尺度注意力网络(HSAN)通过分组卷积和联合通道-空间注意力机制,增强多尺度特征表达能力 《YOLO26魔术师专栏》将从以…

作者头像 李华
网站建设 2026/6/15 15:56:47

2026 年企业 HR 必备:新员工入职前信息采集与合同管理智能化方案

新员工入职前的信息采集与合同管理是企业 HR 工作的重要起点&#xff0c;直接影响员工入职体验与企业合规管理效率。传统模式下&#xff0c;人工收集信息、纸质签署合同不仅耗时耗力&#xff0c;还易出现信息遗漏、流程滞后等问题。随着数字化转型推进&#xff0c;智能化方案逐…

作者头像 李华
网站建设 2026/6/12 3:10:19

苹果手机文件传输到电脑指南:一文学会4个高效技巧

苹果手机文件传输到电脑&#xff0c;是苹果用户经验会面临的需求。无论您是想备份照片、分享东西&#xff0c;还是想在电脑上编辑文件&#xff0c;选择合适的传输方式能大大提高效率。本文将为你系统梳理5种常用方法&#xff0c;从无线传输到有线链接&#xff0c;总有一种能契合…

作者头像 李华
网站建设 2026/6/15 12:27:54

2026年智慧城管整体解决方案 - 全956页下载

引言随着城市化进程的加速&#xff0c;城市管理面临着前所未有的挑战。传统城市管理模式存在效率低下、信息传递不畅、数据整合困难等问题&#xff0c;难以满足现代城市精细化管理的需求。为此&#xff0c;智慧城管作为一种创新的管理模式应运而生&#xff0c;旨在通过物联网、…

作者头像 李华