问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

时间:2021-08-01 03:30:54
百思不得其解。
这不是多余的吗? 脱开裤子放屁?

既然java有try{}、catch{}  finally 、throw、throws,  这这些加在代码那里,还不如写严实一点代码啊? 为什么要用异常?

比如: 用户输入小于0的数字, 直接给个对话框,提示不能小于0不就OK了?  用得了,try{}、catch{}  finally   不?


28 个解决方案

#1


这是增加健壮性 比如 为什么开车要买保险 谨慎点不就行了

#2


好吧。有些异常了我不想让用户看到个500页面。。程序能继续跑呢。又或者说这个异常不影响后面的程序运行只不过我想日志打印呢。

#3


引用 2 楼 ss36290109 的回复:
好吧。有些异常了我不想让用户看到个500页面。。程序能继续跑呢。又或者说这个异常不影响后面的程序运行只不过我想日志打印呢。
问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,? 原来这样。额,我是新手。呵呵。 

#4


你说的那个比如 其实是异常的烂用。
异常主要用来处理一些非正常的情况,比如 正连着数据库,可是数据库突然挂了。

#5


引用 4 楼 AFer198215 的回复:
你说的那个比如 其实是异常的烂用。
异常主要用来处理一些非正常的情况,比如 正连着数据库,可是数据库突然挂了。
意思是很少用到这个异常?  额

#6


有些异常是预知不到的,就像连接数据库,谁敢保证100%能够连接上去,预知不到的就要捕抓他,不让程序因为异常而中断,是一种异常保护机制

#7


楼主考虑的不是很周全。因为不是所有情况都像直接给个对话框那么简单。

#8


而且有些异常时你用的类库就抛出来的。。你要用要么捕获要么也继续抛。。这个不是你写的严谨就能控制的。

#9


引用 6 楼 whz137458 的回复:
有些异常是预知不到的,就像连接数据库,谁敢保证100%能够连接上去,预知不到的就要捕抓他,不让程序因为异常而中断,是一种异常保护机制

把我想说的表达出来了。 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#10


说实话,谁也不能保证万无一失。。即使是经验很丰富的程序员,也很难避免异常或者错误。。官方这么做是为了程序的稳定和健壮。 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#11


到时候可以从日志中看看发生了什么异常错误,便于后期维护管理!

#12


楼上很多都说到点上了。哈哈,我就不重复叙述了

#13


使用异常还可以把抛出异常的地方和捕获解决异常的地方分解开来,这是很重要的,因为抛出异常的程序员不一定知道应该如何解决异常

#14


楼主这个问题真是很强悍!人力有时穷  ,不可能方方面面都考虑到。这个世界上没有哪一个软件的作者敢说自己的程序是没有bug的!

#15


lz 是来讨伐来了,只待出师有名。

#16


访问系统文件,却发现该文件根本不存在

#17


楼主可能是觉得异常把程序的执行流程打乱了,其实都可以用分支判断等方法处理吧
恩,他一定是觉得要goto-less

#18


lz你的只是简单的前台校验,一般后台也要做校验,人家有办法不通过前台直接到后台的。。。。

#19


想的简单了,java中很多异常是需要处理的,而不是靠严谨的代码就能控制。

#20


听说对软件进行穷举式的测试所需的时间是软件开发时间的数十数百倍,很多情况下不需要将所有问题都暴露出来,因为那样做几乎是不可能的,所以需要将多个已知和未知的问题丢进一个口袋统一处理。
比如当你看csdn论坛时,不论服务器维护,还是机房(及所有备份机房)海啸地震火山爆发了,又或者你的网线被小强啃了,其结果都是你无法登陆论坛了,这就是异常。此外还有一种叫错误(error),就是你连登陆论坛的机会都没有,因为你的浏览器打不开了。

#21


举个简单例子,从用户角度来讲,当后台程序出现异常,用户并不想看到异常栈信息,用户也看不懂,但我们可以通过捕捉该异常,对用户友好提示。

#22


吐槽前最好做好调查,异常不等于bug,异常处理和debug是两回事,另外一个程序不是一个人做的,一个程序员有可能并不知道当他遇到某个异常时,上层invoker要如何处理,所以他要做的只是通知上层他遇到了异常,由上层决定如何处理

#23


高手们的评论让人看得很爽

#24


看评论很精彩。 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

也想说说自己对异常的看法:
1. 异常通常用于扑捉意外的错误,也就是编码所不能控制的错误,比如说数据库出问题连接不上了,文件找不到了,或者如楼上所言地震、火山神马的。
2. 通过抛出异常,可以把同类问题汇拢到一起统一解决,这样代码就更精简了。
3. 通过看异常栈,方便层层跟踪错误。
4. 提高代码的可读性,让我们把异常处理代码和普通代码分开。
5. 异常见名知意,看信息很容易知道产生异常的原因。

#25


问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#26


引用 24 楼 kexinmei 的回复:
看评论很精彩。

也想说说自己对异常的看法:
1. 异常通常用于扑捉意外的错误,也就是编码所不能控制的错误,比如说数据库出问题连接不上了,文件找不到了,或者如楼上所言地震、火山神马的。
2. 通过抛出异常,可以把同类问题汇拢到一起统一解决,这样代码就更精简了。
3. 通过看异常栈,方便层层跟踪错误。
4. 提高代码的可读性,让我们把异常处理代码和普通代码分开。
5. 异常见名知意,看……

这mm说得可以。程序写出去了,有时候不是自己能控制的。

#27


其他人看到这个问题解说一下就好了,不要骂太狠。
新手总是会碰到这样的问题。这一问,被别人这么一说,印象就深刻了。
以后楼主自己来看这些帖会很有意思的。比如会在想,哇塞,当初的我会问这么sb的问题 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#28


楼主,还有,你的id是纯中式英文,哈哈,估计你是想说hello 2013年,然后就取名“hello2013year 
”,正确的是这样的"helloyear2013”,吐槽完毕 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#1


这是增加健壮性 比如 为什么开车要买保险 谨慎点不就行了

#2


好吧。有些异常了我不想让用户看到个500页面。。程序能继续跑呢。又或者说这个异常不影响后面的程序运行只不过我想日志打印呢。

#3


引用 2 楼 ss36290109 的回复:
好吧。有些异常了我不想让用户看到个500页面。。程序能继续跑呢。又或者说这个异常不影响后面的程序运行只不过我想日志打印呢。
问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,? 原来这样。额,我是新手。呵呵。 

#4


你说的那个比如 其实是异常的烂用。
异常主要用来处理一些非正常的情况,比如 正连着数据库,可是数据库突然挂了。

#5


引用 4 楼 AFer198215 的回复:
你说的那个比如 其实是异常的烂用。
异常主要用来处理一些非正常的情况,比如 正连着数据库,可是数据库突然挂了。
意思是很少用到这个异常?  额

#6


有些异常是预知不到的,就像连接数据库,谁敢保证100%能够连接上去,预知不到的就要捕抓他,不让程序因为异常而中断,是一种异常保护机制

#7


楼主考虑的不是很周全。因为不是所有情况都像直接给个对话框那么简单。

#8


而且有些异常时你用的类库就抛出来的。。你要用要么捕获要么也继续抛。。这个不是你写的严谨就能控制的。

#9


引用 6 楼 whz137458 的回复:
有些异常是预知不到的,就像连接数据库,谁敢保证100%能够连接上去,预知不到的就要捕抓他,不让程序因为异常而中断,是一种异常保护机制

把我想说的表达出来了。 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#10


说实话,谁也不能保证万无一失。。即使是经验很丰富的程序员,也很难避免异常或者错误。。官方这么做是为了程序的稳定和健壮。 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#11


到时候可以从日志中看看发生了什么异常错误,便于后期维护管理!

#12


楼上很多都说到点上了。哈哈,我就不重复叙述了

#13


使用异常还可以把抛出异常的地方和捕获解决异常的地方分解开来,这是很重要的,因为抛出异常的程序员不一定知道应该如何解决异常

#14


楼主这个问题真是很强悍!人力有时穷  ,不可能方方面面都考虑到。这个世界上没有哪一个软件的作者敢说自己的程序是没有bug的!

#15


lz 是来讨伐来了,只待出师有名。

#16


访问系统文件,却发现该文件根本不存在

#17


楼主可能是觉得异常把程序的执行流程打乱了,其实都可以用分支判断等方法处理吧
恩,他一定是觉得要goto-less

#18


lz你的只是简单的前台校验,一般后台也要做校验,人家有办法不通过前台直接到后台的。。。。

#19


想的简单了,java中很多异常是需要处理的,而不是靠严谨的代码就能控制。

#20


听说对软件进行穷举式的测试所需的时间是软件开发时间的数十数百倍,很多情况下不需要将所有问题都暴露出来,因为那样做几乎是不可能的,所以需要将多个已知和未知的问题丢进一个口袋统一处理。
比如当你看csdn论坛时,不论服务器维护,还是机房(及所有备份机房)海啸地震火山爆发了,又或者你的网线被小强啃了,其结果都是你无法登陆论坛了,这就是异常。此外还有一种叫错误(error),就是你连登陆论坛的机会都没有,因为你的浏览器打不开了。

#21


举个简单例子,从用户角度来讲,当后台程序出现异常,用户并不想看到异常栈信息,用户也看不懂,但我们可以通过捕捉该异常,对用户友好提示。

#22


吐槽前最好做好调查,异常不等于bug,异常处理和debug是两回事,另外一个程序不是一个人做的,一个程序员有可能并不知道当他遇到某个异常时,上层invoker要如何处理,所以他要做的只是通知上层他遇到了异常,由上层决定如何处理

#23


高手们的评论让人看得很爽

#24


看评论很精彩。 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

也想说说自己对异常的看法:
1. 异常通常用于扑捉意外的错误,也就是编码所不能控制的错误,比如说数据库出问题连接不上了,文件找不到了,或者如楼上所言地震、火山神马的。
2. 通过抛出异常,可以把同类问题汇拢到一起统一解决,这样代码就更精简了。
3. 通过看异常栈,方便层层跟踪错误。
4. 提高代码的可读性,让我们把异常处理代码和普通代码分开。
5. 异常见名知意,看信息很容易知道产生异常的原因。

#25


问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#26


引用 24 楼 kexinmei 的回复:
看评论很精彩。

也想说说自己对异常的看法:
1. 异常通常用于扑捉意外的错误,也就是编码所不能控制的错误,比如说数据库出问题连接不上了,文件找不到了,或者如楼上所言地震、火山神马的。
2. 通过抛出异常,可以把同类问题汇拢到一起统一解决,这样代码就更精简了。
3. 通过看异常栈,方便层层跟踪错误。
4. 提高代码的可读性,让我们把异常处理代码和普通代码分开。
5. 异常见名知意,看……

这mm说得可以。程序写出去了,有时候不是自己能控制的。

#27


其他人看到这个问题解说一下就好了,不要骂太狠。
新手总是会碰到这样的问题。这一问,被别人这么一说,印象就深刻了。
以后楼主自己来看这些帖会很有意思的。比如会在想,哇塞,当初的我会问这么sb的问题 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?

#28


楼主,还有,你的id是纯中式英文,哈哈,估计你是想说hello 2013年,然后就取名“hello2013year 
”,正确的是这样的"helloyear2013”,吐槽完毕 问个问题:既然java有异常、抛异常用法,那程序员为什么在写代码时,不谨慎点,?