- 主题:c++异常比java,c#异常差在哪里了?
“因为需要抠性能的场合、需要确定的处理时间的场合不能用异常,因为会被懒人码农滥用,因为我习惯了返回码,所以异常烂”,这就是骂异常的逻辑吧
--
修改:z16166 FROM 221.218.161.*
FROM 221.218.161.*
我没骂异常,哈哈
【 在 iwantfly 的大作中提到: 】
: 就c++er需要性能?
: 就大部分人写那点代码也配谈性能吗
:
--
FROM 221.218.161.*
OS对外提供的API绝大部分都是C接口,只能用返回码。
windows有几套吧,kernel和native api是NTSTATUS返回码,还有应用层的GetLastError()的一套返回码,外加COM的HRESULT一套
ms后来搞的c++/winrt这套api是可以用异常的
【 在 easior 的大作中提到: 】
: 返回出错代码是 Linux 系统的标准做法
: 骂异常的估计都是 Linux C++ 流派的
: 那么问题来了,Windows 系统有配套的出错代码嘛?
: ...................
--
FROM 221.218.161.*
你不知道linus是多么鄙视c++
【 在 easior 的大作中提到: 】
: Windows 搞了这多套啊
: 为啥 Windows 上终端的 main 返回值不赋特定的含义
: 看起来还是 MS 对 C++ 更支持,专门搞了用异常的 API
: ...................
--
FROM 221.218.161.*
C++码农关注异常的性能是没啥问题的,要不就不是C++码农了,毕竟比java/c#更接近硬件,可以抠的细节更多。
而且关注/批评这个性能,也许能促进异常的演进。
不过需要高性能(或者需要确定的执行时长)的场合,先别用异常就是了。
也从没人说过c++异常任何地方都可以无脑用。
【 在 mopo 的大作中提到: 】
: 简单来说其他两个写异常相关代码没心理负担,不需要看各种effective来学习什么情况下才能“正确”使用
--
FROM 221.218.161.*
反过来说,好像有这种说法:“反正你都用js/py/c#/java了,还在乎性能吗,实在不行,加机器啊”,哈哈
【 在 mopo 的大作中提到: 】
: 我只是从体验的角度说下,正儿八经写项目当然该咋干咋干
: java写异常瞎整的也见过不少,啥都用Exception大基类catch的、吞异常的、重封装改语义的
:
--
FROM 221.218.161.*
这个gc和c++异常一样,极端场合都要追求deterministic
不过java gc已经有deterministic的,c++异常到现在还没
【 在 mopo 的大作中提到: 】
: java表示我现在jvm支楞起来了,不带你们玩了,哈哈,gc时间到1ms级别,确实已经是出类拔萃了
:
--
FROM 221.218.161.*
32位x86是每个函数有异常帧,64位x86是查表
【 在 overcomeunic 的大作中提到: 】
: java是查表,O(1)?
: C++是栈回退,每个栈都查一下当前有没有人能处理 《-- 是这个导致的性能恶化吧,栈回退&逐个栈检查
--
修改:z16166 FROM 221.218.161.*
FROM 221.218.161.*