
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
794
|
Chapter 14: Web
Discussion
The Solution code uses the Uri class to do the heavy lifting. The constructor for the
Uri class can throw two types of exceptions: an ArgumentNullException and a
UriFormatException. The ArgumentNullException is thrown when the uri argument
passed is
null. The UriFormatException is thrown when the uri argument passed is of
an incorrect or indeterminate format. Here are the error conditions that can throw a
UriFormatException:
• An empty URI was passed in.
• The scheme specified in the
Uri is not correctly formed. See CheckSchemeName.
• The URI passed in contains too many slashes.
• The password specified in the passed-in URI is invalid.
• The hostname specified in the passed-in URI is invalid.
• The filename specified in the passed-in URI is invalid.
• The username specified in the passed-in URI is invalid.
• The host or authority name specified in the passed-in URI cannot be terminated
by backslashes.
• The port number specified in the passed-in URI is invalid or cannot be parsed.
• The length of the passed-in URI exceeds 65,534 characters.
• The length of the scheme specified in the passed-in URI exceeds 1023 characters.
• There is an invalid character sequence in the passed-in URI.
uriParts.AppendFormat("StrongAuthority (unescaped): {0}{1}",
uri.GetComponents(UriComponents.StrongAuthority, ...