泰山版《Java开发手册》答开发者问
提问:异常和流程控制 位置: 二.(二)异常处理
正例:用户注册的场景中,如果用户输入非法字符,或用户名称已存在,或用户输入密码过于简单,在程序上作出分门别类的判断,并提示给用户。 第3条正例中的注册案例,根据不同的注册异常给出不同的响应。 是否与第2条不要用异常做流程控制和条件控制和我理解的第1条可以通过预检查方式规避的异常不应该通过catch的方式来处理的思路冲突呢?不管是非法字符或用户名称已存在或输入密码过于简单都是可以通过预检查方式规避的异常。
以前没太仔细考虑异常处理的问题,都是自定义异常直接抛。前段时间修改以前的demo,原本是像示例这样把校验失败都算作异常,但在一些论坛中的讨论贴看到说这样是滥用异常,于是就修改成做预检查用返回值来控制参数和权限校验这部分,但改完还是说不出来这两种处理方式的好坏。
手册里所说的这两条内容,没理解到位,关于用异常还是用预检查返回值控制流程的问题比较纠结。希望各位老师能帮我解惑,谢谢
赞0
踩0