news 2026/4/17 23:35:11

[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/4/16 13:04:30

TBarCode SDK 11.17.4 -2025-10-15 版本

TBarCode SDK - 条形码生成器软件--概述微软办公软件/365条形码与网络面向开发者数据表历史 TEC-IT 的条形码 SDK 为软件开发人员和Microsoft Office用户提供条形码打印功能。借助这款条形码生成器软件&#xff0c;您可以创建并打印工业和商业中使用的所有条形码符号&#xff0…

作者头像 李华
网站建设 2026/4/17 14:21:52

网安毕设新颖的课题建议

文章目录&#x1f6a9; 1 前言1.1 选题注意事项1.1.1 难度怎么把控&#xff1f;1.1.2 题目名称怎么取&#xff1f;1.2 选题推荐1.2.1 起因1.2.2 核心- 如何避坑(重中之重)1.2.3 怎么办呢&#xff1f;&#x1f6a9;2 选题概览&#x1f6a9; 3 项目概览题目1 : 图像隐写算法研究与…

作者头像 李华
网站建设 2026/3/27 8:13:48

YOLO26优化:Transformer创新 | 卷积化自注意力,共享大卷积核和动态卷积核,引入Flash Attention高效涨点| ICCV2025

💡💡💡问题点:针对 Transformer 在图像超分辨率(SR)任务中的高计算开销问题,提出了一系列高效解决方案。①我们观察到自注意力在不同层之间存在重复性 💡💡💡我们提出了一种设计策略:仅在每个 Transformer 块的第一层保留自注意力,其余层则替换为我们提出的高…

作者头像 李华
网站建设 2026/4/12 17:10:05

黄金暴跌启示录:是牛回头还是拐点将至?

诚实评估自己的知识、经验和风险偏好&#xff0c;只赚自己认知范围内的钱。 大家好啊&#xff0c;好久没更新了。就在这几天&#xff0c;我们共同见证了金融市场的又一次历史性时刻&#xff1a;黄金、白银价格上演了一场惊心动魄的“高台跳水”。 短短几个交易日&#xff0c;国…

作者头像 李华
网站建设 2026/3/28 16:04:21

从 0 到 1 搭建战略性人才库:长期人才储备的关键路径

在市场竞争日趋激烈的当下&#xff0c;人才成为企业保持核心竞争力的关键要素。长期人才储备与战略性人才库的构建与管理&#xff0c;不再是大企业的 “专属动作”&#xff0c;而是各类企业实现可持续发展的必然选择。很多企业面临着 “急需人才时招不到&#xff0c;核心人才留…

作者头像 李华