InfoQ

新闻

评论:Exception Hunter

作者 Jonathan Allen 译者 朱永光 发布于 2008年4月17日 上午12时8分

社区
.NET
主题
调试
标签
静态分析

未处理的异常是任何应用程序的克星,特别发生在那些无用户交互的应用程序中的。理想情况下,编译器应该能检测并警告开发人员这些潜在的问题,但是目前的.NET编译器甚至不能判定那些异常应该被抛出。

为了解决这个问题,Red Gate发布了Exception Hunter。这个工具分析方法以判定它们会抛出哪些异常。生成的报告能交互式的查看或者链接到诸如CruiseControl这样的自动构建系统中。

类似Red Gate的大部分软件一样,Exception Hunter有一个简单直观的界面。但是不幸的是,简单不总是代表着易用。虽然这个工具能生成报告,但它只能从命令行来执行。这么一个简单的任务在GUI中居然找不到地方可以调用。

更郁闷的是,方法列表并没有显示出那个方法会真正地抛出异常。一些方法被加粗显示,但这只表明它不是一个基类的子类。所以,用户不得不分别地展开每个方法.

其实上面提到的这些都可以忍受,但有一件事——误判的数量无比的多。来看看这个简单的VB应用程序

Source Code

仅仅这几行代码能抛出的这些异常:

  • ArgumentException 6
  • ArgumentNullException 4, 6
  • ArgumentOutOfRangeException 4, 5, 6
  • FormatException 4, 6
  • IndexOutOfRangeException 6
  • InvalidCastException 6
  • InvalidOperationException 6
  • ObjectDisposedException 6
  • IO.PathTooLongException 6
  • NotSupportedException 6
  • NullReferenceException 6
  • OutOfMemoryException 4, 5, 6

人们无法想象一个微不足道的应用程序能生成这么多的异常。

虽然有效的异常分析将会为业界带来很多好处,但Red Gate的Exception Hunber表明我们如今还做不到这点。且人们不得不担心这是否是一个可以解决的问题。

查看英文原文:Review: Exception Hunter

其实这个东西我觉得做好的话很有用 发表人 超 陆 发表于 2008年4月17日 上午8时58分
  1. 返回顶部

    其实这个东西我觉得做好的话很有用

    2008年4月17日 上午8时58分 发表人 超 陆

    不过想做好不太容易,因为.Net里好像没有比较方便的方法告诉编译器等软件在什么情况下会抛出什么异常。 这个其实可以用Attribute来解决,但是,麻烦的是FCL和其它很多库都没有采用这个东西,要统一也是比较困难的。 但是,如果做好了,这种东西真的很有用,写代码时可以只写代码,不考虑异常,写完了用在工具的帮助下再处理,应该能大大地提高生产率。

深度内容

和Google互补的搜索引擎Wolfram|Alpha

Wolfram|Alpha与Google究竟是什么关系,Wolfram|Alpha自己是如何定位的?Wolfram|Alaph在多大程度上是语义网搜索呢?InfoQ中文站就等等这些问题采访了Wolfram研究公司中国区商务经理王翔。

SOA契约成熟度模型

本文说明了所推荐的契约版本管理设计策略是如何与SOA成熟度模型发生联系的。文章目的是为实现版本管理和可组合性提供一个路线图。

数据服务简介

Vijay Narayanan在这篇文章中对数据服务的几个方面进行了介绍,它们都是SOA实践者和数据架构师感兴趣的内容。本文对数据服务的几个方面进行了介绍,包括需求定义,基本原理和好处、范围、开发以及消费模式。

分块云计算

在本文中,Jimmy Nilsson描述了一种他在过去数年间观察到的一种正在缓慢成长的架构风格,他把这种风格称为“分块云计算”。

豆瓣网技术架构变迁

罗马不是一天建成的,豆瓣的技术架构也是随着用户规模的增长一直在持续变化中。在本次演讲中,豆瓣的首席架构师洪强宁将与大家一起分享从上线时的单台服务器架构开始一直到现在的豆瓣架构变迁历程。

融合思想:深入探索S#arp架构

Billy McCafferty展示了S#arp架构,它在ASP.NET MVC框架的基础上,荟萃了当今的最佳实践,应用在ASP.NET Web应用程序的架构设计中。

王雷谈开源以及新兴市场计划

中国作为新兴市场中的新兴市场,是Sun在美国之外实施SSE(SUN Startup Essentials)项目重点关注的地区。在QCon Beijing 2009期间,InfoQ中文站有幸对此项目的负责人王雷先生进行了采访,探讨了关于开源、新兴市场、SSE等话题。

使用HTML5构建下一代的Web Form

HTML5 是由 WHATWG发起的,最开始的名称叫做Web Application 1.0,而后这个标准吸纳了Web Forms 2.0的标准,并一同被W3C组织所采用,合并成为下一代的HTML5标准。