Xaq*_*ron 8 c# stack-overflow reflection
我有一个递归函数,BaseClass它依赖于protected virtual函数的返回条件.
子类可能会错误地覆盖此函数并导致StackOverFlow异常.最糟糕的是网络呼叫速度很慢,而且不会很快发生异常(许多资源浪费很长时间).
我正在寻找StackOverFlow一种在基类中以某种方式检查早期阶段的方法(可能使用Reflection和当前的递归级别).
任何的想法 ?
您可以将一个简单的整数"深度"传递给递归函数,并在每次后续调用时递增它.如果它大于允许的最大深度,则抛出异常,而不是等到它太晚并且StackOverflow发生了可怕的异常.
这样的安全机制(增量计数器,检查它不是非常大)也可以在while循环中使用,其中小错误可能导致无限循环消耗大量CPU.
在具有许多用户(例如网站)的大型系统中,有时最好采用递归和循环等预防措施,因为后果可能远远超出一个网页或系统的一个用户.这不是漂亮的代码,纯粹主义者无疑会对此不屑一顾,但它是有效的,它是防御性的,而且是务实的.
| 归档时间: |
|
| 查看次数: |
8338 次 |
| 最近记录: |