- 主题:大家都用C++的try catch吗?
异常挺好的
LoginException::ThrowOn(!$username, "用户名不存在",);
LoginException::ThrowOn(empty($password),"请输入密码");
不必写一大堆错误代码清晰么
【 在 hongdiao 的大作中提到: 】
: 异常这玩意最早发明就是为了要处理构造函数发生的错误吧? 构造函数这玩意压根没返回值, 不用异常用什么。 当然有些C++变种搞得奇奇怪怪的二阶段构造很丑陋就是了。。。
--
FROM 223.198.83.*
异常本身就是小概率事件
【 在 overcomeunic 的大作中提到: 】
: 推荐个毛线
: 但凡持续抛异常,性能掉到底
--
FROM 223.198.83.*
其实我没理解 c++ 的 try catch 是怎么实现机制
按 C 语言来说,发生 异常,如被0除, 抛出 的是错误码才是最自然的方式
C++ throw 的时候,构造 Exception 类 是什么机制
【 在 z16166 的大作中提到: 】
: 请仔细阅读,是x64在没抛出异常时才是zero-cost的;抛出异常时当然不是zero-cost的,要查表处理异常。
: x64的异常处理信息是编译期写入了PE文件的。
--
FROM 223.198.83.*
要不要异常和错误分开,和 php 那样
【 在 adoal 的大作中提到: 】
: C++的发展过程中,引入了多种不同编程范式,同时为了保有老用户
: 和业界积累的老资产,坚持对历史全兼容,坚决不抛弃plain C的东西,
: 也不抛弃pre-modern C++时代的东西,包括语法和历史上的标准库。
: ...................
--
FROM 223.198.80.*
risc-v arm 等平台呢,又怎么设计的
【 在 z16166 的大作中提到: 】
: 32位x86也可以按x64这么设计,不过因为32位ABI当时就那么定了,得用代码动态建立exception handler chain。
: 转一个比较:www dot osronline dot com /article.cfm%5earticle=469.htm
: 因为在 x86 上,每个使用 SEH 的函数都将上述结构作为其序言的一部分,所以据说 x86 使用基于帧的异常处理。这种方法有几个问题:
: ...................
--
FROM 223.198.80.*
CPU 就应该给自定义异常一个专门的指令,便于流水化作业。
那么,也就是要把错误和人工异常区分开来
【 在 iMx 的大作中提到: 】
: 这个异常的处理应该像cpu的分支预测,程序员在编程时就应该预测最可能的路径,不可
: 能持续抛异常
--
FROM 223.198.80.*
C++异常是怎么生成的
【 在 foliver 的大作中提到: 】
: 不要看BS怎么说,他是标准委员会的,会自己打自己脸?
: 坚决反对在C++使用异常。原因
: 1)性能,C++异常肯定会影响性能。看看C++异常生成的代码就知道了,说不影响性能那是自欺欺人。
: ...................
--
FROM 112.66.30.*