自定义异常的处理程序在哪里
Where to have the Handlers for Custom Exceptions
我的项目中定义了 2 个自定义异常。每一个都应该以不同的方式处理。
Exception A
{
errCode
}
Exception B
{
// other stuff
errCode
}
主要的调用方法,是这样的
写入表的代码是否应该在异常class(比如称为 handleItself() 的方法)内。还是调用者方法应该处理它?
有多个入口点。而且我对到处都有处理逻辑犹豫不决。
哪种方法更好?
catch (A a)
{
insert to table X
}
catch (B b)
{
// do other stuff
insert to table Y
}
or
catch (A a)
{
a.handleItself();
}
catch (B b)
{
// do other stuff
b.handleItself();
}
最好不要在异常中包含任何业务逻辑,它们应该是哑对象,只包含有关它们被抛出的原因的信息。负责的 class(在大多数情况下,能够)决定如何处理它。
从这个问题的性质来看,您似乎以错误的方式使用了异常。异常就是异常,不应用于驱动软件的预期(读取正常)行为。
我的项目中定义了 2 个自定义异常。每一个都应该以不同的方式处理。
Exception A
{
errCode
}
Exception B
{
// other stuff
errCode
}
主要的调用方法,是这样的
写入表的代码是否应该在异常class(比如称为 handleItself() 的方法)内。还是调用者方法应该处理它?
有多个入口点。而且我对到处都有处理逻辑犹豫不决。
哪种方法更好?
catch (A a)
{
insert to table X
}
catch (B b)
{
// do other stuff
insert to table Y
}
or
catch (A a)
{
a.handleItself();
}
catch (B b)
{
// do other stuff
b.handleItself();
}
最好不要在异常中包含任何业务逻辑,它们应该是哑对象,只包含有关它们被抛出的原因的信息。负责的 class(在大多数情况下,能够)决定如何处理它。
从这个问题的性质来看,您似乎以错误的方式使用了异常。异常就是异常,不应用于驱动软件的预期(读取正常)行为。