我站在"不慢"的一边——或者更准确地说,"不够慢,不值得在正常使用中避免它们".关于这件事我写了两篇shortarticles.有人对基准方面提出了批评,这主要是因为"在现实生活中,会有更多的堆栈需要处理,所以你会 destruct 缓存等等"——但使用错误代码沿着堆栈往上移动会 destruct 缓存,所以我不认为这是一个特别好的论点.
我只想说明一下-我不支持在不符合逻辑的情况下使用异常.例如,int.TryParse
完全适合于转换来自用户的数据.当读取机器生成的文件时,这是不合适的,因为失败意味着"文件不是它应该采用的格式,我真的不想try 处理这个问题,因为我不知道还会有什么错误."
在"仅在合理情况下"使用异常时,我从未见过应用程序的性能因异常而显著受损.基本上,除非你有重大的正确性问题,否则异常不应该经常发生,如果你有重大的正确性问题,那么性能并不是你面临的最大问题.