我又来了,还有一个关于 MVC 的问题。
这是交易。我有一个带有 ID 和名称的简单表/类。名称应该是唯一的,并且像数据库中的那样建模。
我创建了我的 Controller ,一切正常。但是如果我尝试插入一个已经存在的名字,就会抛出一个异常。我只是没有找到正确的异常类型及其 namespace 。错误必须来自数据库,所以...
有什么想法吗?
谢谢
最佳答案
只需声明您自己的异常类即可。
public class DuplicateNameException : Exception {}
您可能希望添加一些构造函数以确保正确设置消息,但这并不需要比这更难。
在 OP 澄清后更新:所以数据库抛出异常,您只是想让问题更明显。在这种情况下,我的建议是将数据库异常保留为 InnerException
,并重新抛出更好的东西。所以将 DuplicateNameException
声明为如下所示:
public class DuplicateNameException : Exception
{
public DuplicateNameException(DBException ex)
: base("Duplicate name!", ex)
{}
}
然后需要做DB操作的地方:
try
{
DoDatabaseOperation();
}
catch (DBException ex)
{
if (IsDuplicateNameException(ex))
{
throw new DuplicateNameException(ex);
}
else
{
throw; // use the no-argument form of "throw" to ensure you don't break the stack trace!
}
}
关于asp.net-mvc - ASP.MVC 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2909857/