- 主题:Java农转写cpp发现,写Java比写cpp省心太多了
可以不代表该这么用
我见了太多的纯C风格java,python和javascript代码,都是印度培训班杰作
一般来说用什么语言就应该按照什么语言的标准库的规矩写,stl和boost为什么要抛异常啊
【 在 Bernstein 的大作中提到: 】
: 现在cpp和rust都可以用代数类型返回错误
:
--
FROM 27.91.71.*
应该用代数类型处理错误,一致有效
【 在 xiaoju 的大作中提到: 】
: 可以不代表该这么用
: 我见了太多的纯C风格java,python和javascript代码,都是印度培训班杰作
: 一般来说用什么语言就应该按照什么语言的标准库的规矩写,stl和boost为什么要抛异常啊
: ...................
--
FROM 123.112.21.*
我是在回答楼主说的问题,优势不主要是这个
【 在 stub 的大作中提到: 】
: 【 在 FangLiu0 的大作中提到: 】
: : 让用户等在那里?
: : 是有些优势的,在某些场景下
: ....................
- 来自「最水木 for iPhone13,2」
--
FROM 210.13.236.*
你说的是error code?
项目做大了这个东西很麻烦,不同team之间怎么分配,用哪个标志表示问题严重性。而且还得写个把code转化成text的表格。
好不容易全搞定了,然后发现自己想嵌入更多信息。。。如网络错误的host名,status code放哪里都是难题。
【 在 Bernstein 的大作中提到: 】
: 应该用代数类型处理错误,一致有效
:
--
FROM 27.91.71.*
并不是难题,都放到variant/optional里头就行
异常信息难道不是得同样管理吗?
用代数类型之后,用管理异常同样的方法就可以管理错误信息
【 在 xiaoju 的大作中提到: 】
: 你说的是error code?
: 项目做大了这个东西很麻烦,不同team之间怎么分配,用哪个标志表示问题严重性。而且还得写个把code转化成text的表格。
: 好不容易全搞定了,然后发现自己想嵌入更多信息。。。如网络错误的host名,status code放哪里都是难题。
: ...................
--
FROM 123.112.21.*
异常是有类型的,你这么做本质上等价于restful那种返回result或者返回error对象的做法
项目小的话是没问题的,但是如果做大了很多代码模块复用,搞清到底是返回了什么异常就不容易了,集中处理某大类异常也比较困难
如果认真把这类问题全解决了,基本也就是重新发明了异常
【 在 Bernstein 的大作中提到: 】
: 并不是难题,都放到variant/optional里头就行
: 异常信息难道不是得同样管理吗?
: 用代数类型之后,用管理异常同样的方法就可以管理错误信息
: ...................
--
FROM 27.91.71.*
代数类型里内嵌的错误信息也可以有类型啊
问题是异常你不了解也处理不了啊,一个外部模块抛的异常完全是扯淡
【 在 xiaoju 的大作中提到: 】
: 异常是有类型的,你这么做本质上等价于restful那种返回result或者返回error对象的做法
: 项目小的话是没问题的,但是如果做大了很多代码模块复用,搞清到底是返回了什么异常就不容易了,集中处理某大类异常也比较困难
: 如果认真把这类问题全解决了,基本也就是重新发明了异常
: ...................
--
FROM 123.112.21.*
异常的优势是可以穿透调用栈
还可以按异常类型各层分类捕获
最关键的,有明确的异常流程代码段
【 在 Bernstein 的大作中提到: 】
: 并不是难题,都放到variant/optional里头就行
: 异常信息难道不是得同样管理吗?
: 用代数类型之后,用管理异常同样的方法就可以管理错误信息
: ...................
--
FROM 27.159.66.*
这个优势才是最烦人的东西
代数类型+模式匹配一致性更好,也不会有非预期的东西出现
【 在 javafish 的大作中提到: 】
: 异常的优势是可以穿透调用栈
: 还可以按异常类型各层分类捕获
: 最关键的,有明确的异常流程代码段
--
修改:Bernstein FROM 123.112.21.*
FROM 123.112.21.*
异常本质就是对象,外部模块的class你就不能用了吗?
【 在 Bernstein 的大作中提到: 】
: 代数类型里内嵌的错误信息也可以有类型啊
: 问题是异常你不了解也处理不了啊,一个外部模块抛的异常完全是扯淡
:
--
FROM 27.91.71.*