答复: 面试题:用Exception异常还是if判断

再次提示对于参数验证使用断言.
对于入力参数应该是全部被考虑到的
(录入错误也应该在逻辑之内,
属于鲁棒性编程方法)

如有不正确那需要防御编程方法
防御编程目的是找出代码出问题的点
而不是业务需要.

在jvm中还有关闭断言的方法.
正式环境下关闭断言.
开发测试下打开断言

PS:如果真的去面试楼上的众人全军覆没
[quote="mercyblitz"][quote="mathfox"][quote="抛出异常的爱"][quote="showr"]一个方法的参数,C里面好像是一堆的if els[color=red]e判断参数是否合法[/color],不合法就返回一个没有实际意义的值

但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值

还是直接来个Exception ?

如果是 if else 的话,有什么好处 ?

如果是 exception 的话,又有什么好处 ?

或者是根据不同情况来定 ?

一次面试的题目,至今无解,求真相[/quote]
使用断言.[/quote]
断言,不是也以抛异常做为结束吗?求讲解。[/quote]


断言是错误,不是java.lang.Exception,它是java.lang.AssertionError。

很多框架使用的自定义断言,很少使用JVM断言机制。[/quote]


[quote="heqishan"][quote="抛出异常的爱"]再次提示对于参数验证使用断言.
对于入力参数应该是全部被考虑到的
(录入错误也应该在逻辑之内,
属于鲁棒性编程方法)

如有不正确那需要防御编程方法
防御编程目的是找出代码出问题的点
而不是业务需要.

在jvm中还有关闭断言的方法.
正式环境下关闭断言.
开发测试下打开断言

PS:如果真的去面试楼上的众人全军覆没
[quote="mercyblitz"][quote="mathfox"][quote="抛出异常的爱"][quote="showr"]一个方法的参数,C里面好像是一堆的if els[color=red]e判断参数是否合法[/color],不合法就返回一个没有实际意义的值

但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值

还是直接来个Exception ?

如果是 if else 的话,有什么好处 ?

如果是 exception 的话,又有什么好处 ?

或者是根据不同情况来定 ?

一次面试的题目,至今无解,求真相[/quote]
使用断言.[/quote]
断言,不是也以抛异常做为结束吗?求讲解。[/quote]


断言是错误,不是java.lang.Exception,它是java.lang.AssertionError。

很多框架使用的自定义断言,很少使用JVM断言机制。[/quote][/quote]

还是不太明白。。。求详细解答。。。
[/quote]
参数不合法有两种可能
1.设计必须冗余错误参数 ....
2.使用此方法的地方参数录入错误.
对于2.你冗余了那么bug就会被隐藏.
所以不必要的冗余需要去掉.
一个方法只干一件事.
对于发现错误需要定位.
所以需要断言来产生定位信息
在正式环境下启动参数可以选反不使用断言.
(当然你要确定此方法使用的正确性,断言永远不会被运行到.)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值