Practical .NET

Send the Right Error Information with HttpException

When something goes wrong with your Web Service the decent thing to do is to return your errors in a variety of ways.

One way to return an error from a Web Service is to raise an HttpException. If you do so, you should support two methods and one property on the HttpException object:

  • GetHttpCode: One of the HTTP protocol's predefined codes
  • GetHtmlMessage: An HTML-formatted message suitable for display in a Web page
  • Message: A plain text string containing useful information about the error

Probably the easiest way to do this is to pass the exception that your service ran into as the third parameter when creating the HttpException object. The odds are good that the ErrorFormatter that generates the HttpException object's HTML will be able to convert your exception into HTML.

Your resulting code would look like this (using 500, the standard HTTP code for "something has gone horribly wrong on the server"):

Try
  '...code with potential problem...
Catch (ex As Exception)
  Throw New Exception(500, "Something has gone horribly wrong", ex)
End Try

Now, that's a strong message no one can ignore.

About the Author

Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.

comments powered by Disqus

Featured

  • Uno Platform Wants Microsoft to Improve .NET WebAssembly in Two Ways

    Uno Platform, a third-party dev tooling specialist that caters to .NET developers, published a report on the state of WebAssembly, addressing some shortcomings in the .NET implementation it would like to see Microsoft address.

  • Random Neighborhoods Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the random neighborhoods regression technique, where the goal is to predict a single numeric value. Compared to other ML regression techniques, advantages are that it can handle both large and small datasets, and the results are highly interpretable.

  • As Some Orgs Restrict DeepSeek AI Usage, Microsoft Offers Models and Dev Guidance

    While some organizations are restricting employee usage of the new open source DeepSeek AI from a Chinese company due to data collection concerns, Microsoft has taken a different approach.

  • Useful New-ish Features in .NET/C#

    We often hear about the big new features in .NET or C#, but what about all of those lesser known, but useful new features? How exactly do you use constructs like collection indices and ranges, date features, and pattern matching?

  • TypeScript 5.8 Beta Speeds Program Loads, Updates

    "TypeScript 5.8 introduces a number of optimizations that can both improve the time to build up a program, and also to update a program based on a file change in either --watch mode or editor scenarios."

Subscribe on YouTube