Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

WebException Constructor (String, Exception, WebExceptionStatus, WebResponse)

Initializes a new instance of the WebException class with the specified error message, nested exception, status, and response.

Namespace:  System.Net
Assembly:  System (in System.dll)
public WebException(
	string message,
	Exception innerException,
	WebExceptionStatus status,
	WebResponse response
)

Parameters

message
Type: System.String

The text of the error message.

innerException
Type: System.Exception

A nested exception.

status
Type: System.Net.WebExceptionStatus

One of the WebExceptionStatus values.

response
Type: System.Net.WebResponse

A WebResponse instance that contains the response from the remote host.

The WebException instance is initialized with the Message property set to the value of message, the InnerException property set to the value of innerException, the Status property set to the value of status, and the Response property set to the value of response. If message is null, the Message property is initialized to a system-supplied message.

The following example throws a WebException by specifying an error message and a WebExceptionStatus.

			 // Send the data. 
			 Encoding ASCII = Encoding.ASCII;
			 string requestPage = "GET /nhjj.htm HTTP/1.1\r\nHost: " + connectUri + "\r\nConnection: Close\r\n\r\n";
			 Byte[] byteGet = ASCII.GetBytes(requestPage);
			 Byte[] recvBytes = new Byte[256];

			 // Create an 'IPEndPoint' object.
	    
			 IPHostEntry hostEntry = Dns.Resolve(connectUri);
			 IPAddress serverAddress = hostEntry.AddressList[0];
			 IPEndPoint endPoint = new IPEndPoint(serverAddress, 80);
	   
			 // Create a 'Socket' object  for sending data.
			 Socket connectSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);
	    
			 // Connect to host using 'IPEndPoint' object.

			 connectSocket.Connect(endPoint);
	    
			 // Sent the 'requestPage' text to the host.
			 connectSocket.Send(byteGet, byteGet.Length, 0);
	    
			 // Receive the information sent by the server.
			 Int32 bytesReceived = connectSocket.Receive(recvBytes, recvBytes.Length, 0);
			 String headerString = ASCII.GetString(recvBytes, 0, bytesReceived);
			


			
			// Check whether 'status 404' is there or not in the information sent by server. 
			if(headerString.IndexOf("404")!=-1)
			{	 
				bytesReceived = connectSocket.Receive(recvBytes, recvBytes.Length, 0);
				MemoryStream memoryStream = new MemoryStream(recvBytes);
				getStream = (Stream) memoryStream;
		
				// Create a 'WebResponse' object
				WebResponse myWebResponse = (WebResponse) new HttpConnect(getStream);
				Exception myException = new Exception("File Not found");

				// Throw the 'WebException' object with a message string, message status,InnerException and WebResponse 
				throw new WebException("The Requested page is not found.",myException,WebExceptionStatus.ProtocolError,myWebResponse);


			}

			connectSocket.Close();	
      // Send the data.
      Encoding*  ASCII = Encoding::ASCII;
      String* requestPage = String::Concat(S"GET /nhjj.htm HTTP/1.1\r\nHost: ", connectUri, S"\r\nConnection: Close\r\n\r\n");
      Byte byteGet[] = ASCII->GetBytes(requestPage);
      Byte recvBytes[] = new Byte[256];

      // Create an 'IPEndPoint' object.
      IPHostEntry* hostEntry = Dns::Resolve(connectUri);
      IPAddress* serverAddress = hostEntry->AddressList[0];
      IPEndPoint* endPoint = new IPEndPoint(serverAddress, 80);

      // Create a 'Socket' object  for sending data.
      Socket* connectSocket = new Socket(AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp);

      // Connect to host using 'IPEndPoint' object.
      connectSocket->Connect(endPoint);

      // Sent the 'requestPage' text to the host.
      connectSocket->Send(byteGet, byteGet->Length,static_cast<SocketFlags>(0));

      // Receive the information sent by the server.
      Int32 bytesReceived = connectSocket->Receive(recvBytes, recvBytes->Length,static_cast<SocketFlags>(0));
      String* headerString = ASCII->GetString(recvBytes, 0, bytesReceived);

      // Check whether 'status 404' is there or not in the information sent by server.
      if (headerString->IndexOf(S"404")!=-1) {
         bytesReceived = connectSocket->Receive(recvBytes, recvBytes->Length,static_cast<SocketFlags>(0));
         MemoryStream* memoryStream = new MemoryStream(recvBytes);
		 getStream = dynamic_cast<System::IO::Stream*>(memoryStream);

         // Create a 'WebResponse' object
         WebResponse * myWebResponse = dynamic_cast<WebResponse*>(new HttpConnect(getStream));
         Exception* myException = new Exception(S"File Not found");

         // Throw the 'WebException' object with a message string, message status, InnerException and WebResponse
         throw new WebException(S"The Requested page is not found.",
            myException, WebExceptionStatus::ProtocolError, myWebResponse);
      }

      connectSocket->Close();

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.