异常(ab)用于Web开发

1 asp.net

我发现自己在Web开发中使用异常,即使是非真正错误的条件,更不用说特殊的 - 只是逻辑决策,验证......

在网页中,我经常编写如下代码:

try
{
    int id;
    if(!int.TryParse(txtID.Text, out id))
        throw new Exception("ID must be an integer");

    if(IdAlreadyExists(id))
        throw new Exception("ID already exists in database");

    //and so on...
}
catch(Exception ex)
{
    SetErrorLine(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是在Web开发中使用异常和实施业务逻辑的正确方法.

PS:我正在使用asp.net,显然我可以使用ASP.NET验证器来处理其中的一些,也可以从逻辑中分离UI,但我试图在一般的想法上指出一点.

Joh*_*ers 6

你刚刚回答了自己的问题.

例外情况适用于特殊情况.假设您发布的代码来自一个以"ID"作为用户输入的页面,那么用户输入就不好了.为此使用验证基础结构,或手动执行,但不要使用异常.

此外,不要养成Exception.Message向用户显示的习惯.它旨在让开发人员了解错误以及如何解决问题.