我有相当大的类使用更多的类。它使用外部资源(数据库,文件等),并且可能会发生一些例外情况。如何在类级别处理未处理的异常
As I learned,sometimes最好使用UnhandledException事件,而不是将try-catch块放在任何地方。
但是,我的课只是许多其他课程之一,上述解决方案在应用程序级别上工作。
只有当在这个类中引发的异常和其他未处理的异常不会被捕获时,我才能以某种方式缩小它的范围才能被解雇?
使用AOP似乎是一种好方法,但我不确定。
我有相当大的类使用更多的类。它使用外部资源(数据库,文件等),并且可能会发生一些例外情况。如何在类级别处理未处理的异常
As I learned,sometimes最好使用UnhandledException事件,而不是将try-catch块放在任何地方。
但是,我的课只是许多其他课程之一,上述解决方案在应用程序级别上工作。
只有当在这个类中引发的异常和其他未处理的异常不会被捕获时,我才能以某种方式缩小它的范围才能被解雇?
使用AOP似乎是一种好方法,但我不确定。
我不知道我是否完全理解了你的问题,但仍然允许我尝试回答它: 你在问是否可以加载你的班级,以便知道哪些例外可能会生成,正在加载DLL的类中处理?这看起来不可能,只是因为调用层次结构。我的建议是,你记录这些异常可能会在你的类被抛出,利用这种机制:
/// <exception cref="ArgumentOutOfRangeException">Thrown if argument is greater than the size of the array.</exception>
这样,你的通话类可以更好地准备处理异常,并知道或多或少其可能的例外没有被处理。
另一种方法是将代码封装在try-catch块中,并使用更具体的异常首先被处理的事实。然后,您可以处理可以通过编程方式解决的场景,然后最后捕获通用异常,以确保即使基础类灾难性地发生故障,您的程序仍然保持稳定。
不幸的是,我不明白你将如何告诉你的被调用的dll,它可能抛出哪些异常正在处理中。
如果您在“类”中处理异常,那么它不是未处理的异常。只有当你知道*如何处理它时才添加try/catch *和*可以有意义地继续运行程序。这两种情况很少是真的。 –