大家都怎么处理除0错误?

freecunix 发布于 2013年11月22日
无人欣赏。

程序中用到除法时,大家都怎么处理的?

比如 a/b

要if(b!=0)a/b else ...

使用try-catch?

捕捉SIGFPE信号?在处理信号码FPE_INTDIV?

还是不管他??

共9条回复
nickel 回复于 2013年11月22日

你想太多了吧?最简单最直接的就好。

favormm 回复于 2013年11月22日

异常处理。

tinyfool 回复于 2013年11月22日

任何用户输入的信息,都要做验证……

saiyagg 回复于 2013年11月22日

这个,自己处理呀。

freecunix 回复于 2013年11月22日

1楼 @nickel

2楼 @favormm

4楼 @saiyagg

我主要是想看看大家都用什么方法处理。

3楼 @tinyfool

有些数据是计算过程中生成的,不来自输入数据。用if(b!=0)这样?

tinyfool 回复于 2013年11月22日

5楼 @freecunix 计算过程出现0作为除数,当然也需要处理啊

nickel 回复于 2013年11月22日

是我就if一下好了,搞什么try catch或者信号那么复杂的,有必要吗?

try catch的话,我认为是除非你要给库的使用者一种统一以异常形式提供错误处理机制,否则我很少会刻意用。

信号的话,除非你要给其他进程了解你这个进程的状态,否则为啥要用?信号本来就是进程间通讯的一种渠道,不是进程内通讯的常规模式。

不管?不管程序就直接崩溃了。

灵感之源 回复于 2013年11月22日

看具体业务需求。

如果业务要求无论如何要返回结果而不是抛错误,那就要容错,否则就记录一下返回消息什么的

freecunix 回复于 2013年11月22日

8楼 @灵感之源 同意,还是的看需求选择处理方法。。

有没有什么办法定义一下,让所有除0操作都等于0? 有时候一大片除法,很头疼呀。

登录 或者 注册