n****1 发帖数: 1136 | 1 Checked exception让程序员能从type signature推断bug的可能原因,其实就是monad
的应用,用type system加强安全性。
但主流语言里只有java强制checked exception啊,这么有用的功能,为啥其他语言不
采纳? |
w**z 发帖数: 8232 | 2 我见过有人嫌麻烦,全搞成RuntimeException
monad
【在 n****1 的大作中提到】 : Checked exception让程序员能从type signature推断bug的可能原因,其实就是monad : 的应用,用type system加强安全性。 : 但主流语言里只有java强制checked exception啊,这么有用的功能,为啥其他语言不 : 采纳?
|
w***g 发帖数: 5958 | 3 我觉得是因为细致地处理异常得不偿失。因为大部分情况下异常发生时无非就是忽略,
重试或者程序退出。这三种里选哪一种往往是根据应用而定的,并不真的需要知道异常
类型。
我主要写C++,实际遇到异常的情况非常少,遇到了也往往是因为bug产生的。除此以外
碰到runtime error的话基本上就是要人为手工干预了。根据我的经验,花时间在定义
一个庞大的异常体系并加以分门别类地处理不如花时间把程序设计好了尽量不要出异常。
我的做法就是楼上说的,全都是runtime exception.
希望版上的java大牛出来说说看法。
monad
【在 n****1 的大作中提到】 : Checked exception让程序员能从type signature推断bug的可能原因,其实就是monad : 的应用,用type system加强安全性。 : 但主流语言里只有java强制checked exception啊,这么有用的功能,为啥其他语言不 : 采纳?
|
X****r 发帖数: 3557 | 4 异常机制是控制程序流程的一种手段,相当于规范的goto语句,和程序的bug没有必然
联系。
常。
【在 w***g 的大作中提到】 : 我觉得是因为细致地处理异常得不偿失。因为大部分情况下异常发生时无非就是忽略, : 重试或者程序退出。这三种里选哪一种往往是根据应用而定的,并不真的需要知道异常 : 类型。 : 我主要写C++,实际遇到异常的情况非常少,遇到了也往往是因为bug产生的。除此以外 : 碰到runtime error的话基本上就是要人为手工干预了。根据我的经验,花时间在定义 : 一个庞大的异常体系并加以分门别类地处理不如花时间把程序设计好了尽量不要出异常。 : 我的做法就是楼上说的,全都是runtime exception. : 希望版上的java大牛出来说说看法。 : : monad
|
g*****g 发帖数: 34805 | 5 It's verbose but typically reduces bugs upfront. Many exceptions can be
ignored. Checked exception forces you to make a decision. Without it you may
realize you should catch and ignore an exception after a production bug.
常。
【在 w***g 的大作中提到】 : 我觉得是因为细致地处理异常得不偿失。因为大部分情况下异常发生时无非就是忽略, : 重试或者程序退出。这三种里选哪一种往往是根据应用而定的,并不真的需要知道异常 : 类型。 : 我主要写C++,实际遇到异常的情况非常少,遇到了也往往是因为bug产生的。除此以外 : 碰到runtime error的话基本上就是要人为手工干预了。根据我的经验,花时间在定义 : 一个庞大的异常体系并加以分门别类地处理不如花时间把程序设计好了尽量不要出异常。 : 我的做法就是楼上说的,全都是runtime exception. : 希望版上的java大牛出来说说看法。 : : monad
|
n****1 发帖数: 1136 | 6 靠,手动内存管理不嫌麻烦,加个exception signature倒嫌麻烦了
【在 w**z 的大作中提到】 : 我见过有人嫌麻烦,全搞成RuntimeException : : monad
|
g*****g 发帖数: 34805 | 7 不一定要细致,比如做个网络 IO 写个 audit log. 对于不同的应用这个操作可能很重
要也可能并不重要。如果不重要,非 java可能就忘记 catch,测试里也不会出问题。
产品环境里 audit service当了,你的程序在不该退出的地方退出了。后果可能很严重
常。
【在 w***g 的大作中提到】 : 我觉得是因为细致地处理异常得不偿失。因为大部分情况下异常发生时无非就是忽略, : 重试或者程序退出。这三种里选哪一种往往是根据应用而定的,并不真的需要知道异常 : 类型。 : 我主要写C++,实际遇到异常的情况非常少,遇到了也往往是因为bug产生的。除此以外 : 碰到runtime error的话基本上就是要人为手工干预了。根据我的经验,花时间在定义 : 一个庞大的异常体系并加以分门别类地处理不如花时间把程序设计好了尽量不要出异常。 : 我的做法就是楼上说的,全都是runtime exception. : 希望版上的java大牛出来说说看法。 : : monad
|