我在想是否可以制作一个无异常的应用程序(不是真的,但是一个抛出异常最少的应用程序)
假设我将 OnException 方法的方面应用于 mscorlib 中的所有内容(听起来是个坏主意)。
在某些情况下,这可能会导致 stackoverflow 异常,但可以使用 ThreadStatic 标记和布尔值来防止它们。
我要问的是,虽然这在纸上听起来不错,但我将来可能面临哪些问题可能会毁掉这个概念?
我在想是否可以制作一个无异常的应用程序(不是真的,但是一个抛出异常最少的应用程序)
假设我将 OnException 方法的方面应用于 mscorlib 中的所有内容(听起来是个坏主意)。
在某些情况下,这可能会导致 stackoverflow 异常,但可以使用 ThreadStatic 标记和布尔值来防止它们。
我要问的是,虽然这在纸上听起来不错,但我将来可能面临哪些问题可能会毁掉这个概念?
从 PostSharp 的角度来看,此用例不受支持,即我们不定期运行针对 mscorlib 中所有内容的方面的测试。这意味着我们不能保证一切都将始终如您所愿。例如,某些异常可能不会被捕获,您稍后会在生产环境中发现。
此外,通过以这种方式应用方面,您最终会在每个方法中使用许多 try-catch 块来包装对 mscorlib 的每次调用。与每个方法有一个或几个 catch 块相比,这不是最优的。
总的来说,这种方法看起来很可疑,并不代表在项目中使用 PostSharp 的通常目的。将异常方面应用于您自己的方法而不是 mscorlib 会更干净。