如果程序中有大量的逻辑判断,写一堆 if else 还是 try catch?有没有更好的办法?

2014-03-28 10:15:23 +08:00
 pc10201
我现在就遇到一个问题,一个小程序,里面有许多判断,一步一步走的
比如检查用户输入的值,再去数据库去查,再去文件中查等等~~
如果用户输入正确,没有多大问题的
但你知道的,不要相信用户,如果只按正常的步骤来,显得程序不够健壮
但写一大堆if else,再加上python的缩进会不会让代码很难看?
难道用一大堆ry..catch?会不会有性能问题,代码也不太好看?
大家是怎么解决异常问题的?还是设计程序时尽量把每一种情况都考虑到?
8430 次点击
所在节点    Python
24 条回复
wity_lv
2014-03-28 13:37:24 +08:00
可以使用try catch.
用CAS做单点登陆的时候,Client端的错误处理使用的是try ... catch ...

try {

cas.login(token);

} catch (UserNotFoundException ex) {
//...
} catch (WrongPasswrdException ex) {
//...
} catch (AuthFailException ex) {
//...
}

// do success.


以上的Exception仅供说明用.

一定要用if else, 参考2楼,快速return的方式中断。
est
2014-03-28 14:05:09 +08:00
看到LZ多个地方问了这个问题。好吧。其实就具体问题来说,对付用户登录这种逻辑判断就一个字——能用+忍!
konakona
2014-03-29 01:03:38 +08:00
如果这些判断是可重复的,完全可以写进函数里。

function isA(){
if(){}
}
function isB(){
if(){}
}
....




//////////////////

//调用部分

isA();

isB();

逻辑清晰可见。
davidli
2014-04-07 20:12:26 +08:00
前几天刚看了腾讯在网站上控制用户登录的JS代码, 一个简单粗暴的for加if if if if if if if .
大意是:
for all form.values
if name="username": xxx
if name="pswd" : xxx
if name="mibao" : xxx
if name="verifycode" : xxx

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/106244

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX