WebException 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 WebException 類別的新執行個體。
多載
WebException() |
初始化 WebException 類別的新執行個體。 |
WebException(String) |
使用指定的錯誤訊息,初始化 WebException 類別的新執行個體。 |
WebException(SerializationInfo, StreamingContext) |
已淘汰.
從指定的 WebException 和 SerializationInfo 執行個體,初始化 StreamingContext 類別的新執行個體。 |
WebException(String, WebExceptionStatus) |
使用指定的錯誤訊息和狀態來初始化 WebException 類別的新執行個體。 |
WebException(String, Exception) |
使用指定的錯誤訊息和巢狀例外狀況來初始化 WebException 類別的新執行個體。 |
WebException(String, Exception, WebExceptionStatus, WebResponse) |
使用指定的錯誤訊息、巢狀例外狀況、狀態和回應來初始化 WebException 類別的新執行個體。 |
WebException()
初始化 WebException 類別的新執行個體。
public:
WebException();
public WebException ();
Public Sub New ()
範例
下列範例會擲回預設 WebException。
try
{
// A 'Socket' object has been created.
Socket^ httpSocket = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
// The IPaddress of the unknown uri is resolved using the 'Dns::Resolve' method.
IPHostEntry^ hostEntry = Dns::Resolve( "http://www.contoso.com" );
IPAddress^ serverAddress = hostEntry->AddressList[ 0 ];
IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress, 80 );
httpSocket->Connect( endPoint );
Console::WriteLine( "Connection created successfully" );
httpSocket->Close();
}
catch ( SocketException^ e )
{
String^ exp = e->Message;
// Throw the WebException with no parameters.
throw gcnew WebException;
}
try
{
// A 'Socket' object has been created.
Socket httpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// The IPaddress of the unknown uri is resolved using the 'Dns.Resolve' method.
IPHostEntry hostEntry = Dns.Resolve("http://www.contoso.com");
IPAddress serverAddress = hostEntry.AddressList[0];
IPEndPoint endPoint = new IPEndPoint(serverAddress, 80);
httpSocket.Connect(endPoint);
Console.WriteLine("Connection created successfully");
httpSocket.Close();
}
catch(SocketException e)
{
String exp = e.Message;
// Throw the WebException with no parameters.
throw new WebException();
}
Try
' A 'Socket' object has been created.
Dim httpSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' The IPaddress of the unknown uri is resolved using the 'Dns.Resolve' method.
' which leads to the 'SocketException' exception.
Dim hostEntry As IPHostEntry = Dns.Resolve("http://www.contoso.com")
Dim serverAddress As IPAddress = hostEntry.AddressList(0)
Dim endPoint As New IPEndPoint(serverAddress, 80)
httpSocket.Connect(endPoint)
Console.WriteLine("Connection created successfully")
httpSocket.Close()
Catch e As SocketException
Dim exp As [String] = e.Message
' Throw the WebException with no parameters.
Throw New WebException()
End Try
備註
無參數建構函式會初始化 類別的新實例 WebException 。 屬性 Message 會初始化為描述錯誤的系統提供訊息。 此訊息會考慮到目前系統的文化特性。
InnerException屬性 Response 會初始化為 null
。
Status 屬性會初始化為 RequestCanceled。
適用於
WebException(String)
使用指定的錯誤訊息,初始化 WebException 類別的新執行個體。
public:
WebException(System::String ^ message);
public WebException (string message);
public WebException (string? message);
new System.Net.WebException : string -> System.Net.WebException
Public Sub New (message As String)
參數
- message
- String
錯誤訊息的文字。
範例
下列範例會藉由指定錯誤訊息擲回 WebException 。
try
{
// A 'Socket' object has been created.
Socket^ httpSocket = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp );
// The IPaddress of the unknown uri is resolved using the 'Dns::Resolve' method.
IPHostEntry^ hostEntry = Dns::Resolve( connectUri );
IPAddress^ serverAddress = hostEntry->AddressList[ 0 ];
IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress, 80 );
httpSocket->Connect( endPoint );
Console::WriteLine( "Connection created successfully" );
httpSocket->Close();
}
catch ( SocketException^ e )
{
Console::WriteLine( "\nException thrown.\nThe Original Message is: {0}", e->Message );
// Throw the 'WebException' object with a message string specific to the situation.
throw gcnew WebException( "Unable to locate the Server with 'www.contoso.com' Uri." );
}
try
{
// A 'Socket' object has been created.
Socket httpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// The IPaddress of the unknown uri is resolved using the 'Dns.Resolve' method.
IPHostEntry hostEntry = Dns.Resolve(connectUri);
IPAddress serverAddress = hostEntry.AddressList[0];
IPEndPoint endPoint = new IPEndPoint(serverAddress, 80);
httpSocket.Connect(endPoint);
Console.WriteLine("Connection created successfully");
httpSocket.Close();
}
catch(SocketException e)
{
Console.WriteLine("\nException thrown.\nThe Original Message is: "+e.Message);
// Throw the 'WebException' object with a message string specific to the situation.
throw new WebException("Unable to locate the Server with 'www.contoso.com' Uri.");
}
Try
' A 'Socket' object has been created.
Dim httpSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' The IPaddress of the unknown uri is resolved using the 'Dns.Resolve' method.
Dim hostEntry As IPHostEntry = Dns.Resolve(connectUri)
Dim serverAddress As IPAddress = hostEntry.AddressList(0)
Dim endPoint As New IPEndPoint(serverAddress, 80)
httpSocket.Connect(endPoint)
Console.WriteLine("Connection created successfully")
httpSocket.Close()
Catch e As SocketException
Console.WriteLine((ControlChars.Cr + "Exception thrown." + ControlChars.Cr + "The Original Message is: " + e.Message))
' Throw the 'WebException' object with a message string specific to the situation.
Throw New WebException("Unable to locate the Server with 'www.contoso.com' Uri.")
End Try
備註
實例會初始化,Message並將 WebException 屬性設定為的值message
。 如果 為 message
null
,則 Message 屬性會初始化為系統提供的訊息。
InnerException屬性 Response 會初始化為 null
。
Status 屬性會初始化為 RequestCanceled。
另請參閱
適用於
WebException(SerializationInfo, StreamingContext)
警告
This API supports obsolete formatter-based serialization. It should not be called or extended by application code.
從指定的 WebException 和 SerializationInfo 執行個體,初始化 StreamingContext 類別的新執行個體。
protected:
WebException(System::Runtime::Serialization::SerializationInfo ^ serializationInfo, System::Runtime::Serialization::StreamingContext streamingContext);
protected WebException (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);
[System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected WebException (System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext);
new System.Net.WebException : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Net.WebException
[<System.Obsolete("This API supports obsolete formatter-based serialization. It should not be called or extended by application code.", DiagnosticId="SYSLIB0051", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
new System.Net.WebException : System.Runtime.Serialization.SerializationInfo * System.Runtime.Serialization.StreamingContext -> System.Net.WebException
Protected Sub New (serializationInfo As SerializationInfo, streamingContext As StreamingContext)
參數
- serializationInfo
- SerializationInfo
SerializationInfo,包含序列化新 WebException 所需的資訊。
- streamingContext
- StreamingContext
StreamingContext,包含與新 WebException 關聯之序列化資料流的來源。
- 屬性
備註
這個建構函式會 ISerializable 實作 類別的 WebException 介面。
另請參閱
適用於
WebException(String, WebExceptionStatus)
使用指定的錯誤訊息和狀態來初始化 WebException 類別的新執行個體。
public:
WebException(System::String ^ message, System::Net::WebExceptionStatus status);
public WebException (string message, System.Net.WebExceptionStatus status);
public WebException (string? message, System.Net.WebExceptionStatus status);
new System.Net.WebException : string * System.Net.WebExceptionStatus -> System.Net.WebException
Public Sub New (message As String, status As WebExceptionStatus)
參數
- message
- String
錯誤訊息的文字。
- status
- WebExceptionStatus
其中一個 WebExceptionStatus 值。
範例
下列範例會 WebException 藉由指定錯誤訊息和 WebExceptionStatus來擲回 。
try
{
// A 'Socket' object has been created.
Socket^ httpSocket = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp );
// The IPaddress of the unknown uri is resolved using the 'Dns::Resolve' method.
IPHostEntry^ hostEntry = Dns::Resolve( "http://www.contoso.com" );
IPAddress^ serverAddress = hostEntry->AddressList[ 0 ];
IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress, 80 );
httpSocket->Connect( endPoint );
Console::WriteLine( "Connection created successfully" );
httpSocket->Close();
}
catch ( SocketException^ e )
{
Console::WriteLine( "\nException thrown.\nThe Original Message is: {0}", e->Message );
// Throw the 'WebException' object with a message string and message status specific to the situation.
throw gcnew WebException( "Unable to locate the Server with 'www.contoso.com' Uri.", WebExceptionStatus::NameResolutionFailure );
}
try
{
// A 'Socket' object has been created.
Socket httpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// The IPaddress of the unknown uri is resolved using the 'Dns.Resolve' method.
IPHostEntry hostEntry = Dns.Resolve("http://www.contoso.com");
IPAddress serverAddress = hostEntry.AddressList[0];
IPEndPoint endPoint = new IPEndPoint(serverAddress, 80);
httpSocket.Connect(endPoint);
Console.WriteLine("Connection created successfully");
httpSocket.Close();
}
catch(SocketException e)
{
Console.WriteLine("\nException thrown.\nThe Original Message is: "+e.Message);
// Throw the 'WebException' object with a message string and message status specific to the situation.
throw new WebException("Unable to locate the Server with 'www.contoso.com' Uri.",WebExceptionStatus.NameResolutionFailure);
}
Try
' A 'Socket' object has been created.
Dim httpSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' The IPaddress of the unknown uri is resolved using the 'Dns.Resolve' method.
Dim hostEntry As IPHostEntry = Dns.Resolve(connectUri)
Dim serverAddress As IPAddress = hostEntry.AddressList(0)
Dim endPoint As New IPEndPoint(serverAddress, 80)
httpSocket.Connect(endPoint)
Console.WriteLine("Connection created successfully")
httpSocket.Close()
Catch e As SocketException
Console.WriteLine((ControlChars.Cr + "Exception thrown." + ControlChars.Cr + "The Original Message is: " + e.Message))
' Throw the 'WebException' object with a message string and message status specific to the situation.
Throw New WebException("Unable to locate the Server with 'www.contoso.com' Uri.", WebExceptionStatus.NameResolutionFailure)
End Try
備註
實例會初始化,並將 WebException 屬性設定為的值message
,Status並將屬性設定為的值status
。Message 如果 為 message
null
,則 Message 屬性會初始化為系統提供的訊息。
InnerException屬性 Response 會初始化為 null
。
適用於
WebException(String, Exception)
使用指定的錯誤訊息和巢狀例外狀況來初始化 WebException 類別的新執行個體。
public:
WebException(System::String ^ message, Exception ^ inner);
public:
WebException(System::String ^ message, Exception ^ innerException);
public WebException (string message, Exception inner);
public WebException (string? message, Exception? innerException);
public WebException (string message, Exception innerException);
new System.Net.WebException : string * Exception -> System.Net.WebException
new System.Net.WebException : string * Exception -> System.Net.WebException
Public Sub New (message As String, inner As Exception)
Public Sub New (message As String, innerException As Exception)
參數
- message
- String
錯誤訊息的文字。
- innerinnerException
- Exception
巢狀例外狀況。
範例
下列範例會 WebException 藉由指定錯誤訊息和巢狀例外狀況來擲回 。
try
{
// A 'Socket' object has been created.
Socket^ httpSocket = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp );
// The IPaddress of the unknown uri is resolved using the 'Dns::Resolve' method.
IPHostEntry^ hostEntry = Dns::Resolve( connectUri );
IPAddress^ serverAddress = hostEntry->AddressList[ 0 ];
IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress, 80 );
httpSocket->Connect( endPoint );
Console::WriteLine( "Connection created successfully" );
httpSocket->Close();
}
catch ( SocketException^ e )
{
Console::WriteLine( "\nException thrown.\nThe Original Message is: {0}", e->Message );
// Throw the 'WebException' object with a message string specific to the situation;
// and the 'InnerException' that actually led to this exception.
throw gcnew WebException( "Unable to locate the Server with 'www.contoso.com' Uri.", e );
}
try
{
// A 'Socket' object has been created.
Socket httpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// The IPaddress of the unknown uri is resolved using the 'Dns.Resolve' method.
IPHostEntry hostEntry = Dns.Resolve(connectUri);
IPAddress serverAddress = hostEntry.AddressList[0];
IPEndPoint endPoint = new IPEndPoint(serverAddress, 80);
httpSocket.Connect(endPoint);
Console.WriteLine("Connection created successfully");
httpSocket.Close();
}
catch(SocketException e)
{
Console.WriteLine("\nException thrown.\nThe Original Message is: "+e.Message);
// Throw the 'WebException' object with a message string specific to the situation;
// and the 'InnerException' which actually lead to this exception.
throw new WebException("Unable to locate the Server with 'www.contoso.com' Uri.",e);
}
Try
' A 'Socket' object has been created.
Dim httpSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' The IPaddress of the unknown uri is resolved using the 'Dns.Resolve' method.
Dim hostEntry As IPHostEntry = Dns.Resolve(connectUri)
Dim serverAddress As IPAddress = hostEntry.AddressList(0)
Dim endPoint As New IPEndPoint(serverAddress, 80)
httpSocket.Connect(endPoint)
Console.WriteLine("Connection created successfully")
httpSocket.Close()
Catch e As SocketException
Console.WriteLine((ControlChars.Cr + "Exception thrown." + ControlChars.Cr + "The Original Message is: " + e.Message))
' Throw the 'WebException' object with a message string specific to the situation.
' and the 'InnerException' which actually lead to this exception.
Throw New WebException("Unable to locate the Server with 'www.contoso.com' Uri.", e)
End Try
備註
實例會初始化,並將 WebException 屬性設定為的值message
,InnerException並將屬性設定為的值innerException
。Message 如果 為 message
null
,則 Message 屬性會初始化為系統提供的訊息。
InnerException屬性 Response 會初始化為 null
。
Status 屬性會初始化為 RequestCanceled。
另請參閱
適用於
WebException(String, Exception, WebExceptionStatus, WebResponse)
使用指定的錯誤訊息、巢狀例外狀況、狀態和回應來初始化 WebException 類別的新執行個體。
public:
WebException(System::String ^ message, Exception ^ inner, System::Net::WebExceptionStatus status, System::Net::WebResponse ^ response);
public:
WebException(System::String ^ message, Exception ^ innerException, System::Net::WebExceptionStatus status, System::Net::WebResponse ^ response);
public WebException (string message, Exception inner, System.Net.WebExceptionStatus status, System.Net.WebResponse response);
public WebException (string? message, Exception? innerException, System.Net.WebExceptionStatus status, System.Net.WebResponse? response);
public WebException (string message, Exception innerException, System.Net.WebExceptionStatus status, System.Net.WebResponse response);
new System.Net.WebException : string * Exception * System.Net.WebExceptionStatus * System.Net.WebResponse -> System.Net.WebException
new System.Net.WebException : string * Exception * System.Net.WebExceptionStatus * System.Net.WebResponse -> System.Net.WebException
Public Sub New (message As String, inner As Exception, status As WebExceptionStatus, response As WebResponse)
Public Sub New (message As String, innerException As Exception, status As WebExceptionStatus, response As WebResponse)
參數
- message
- String
錯誤訊息的文字。
- innerinnerException
- Exception
巢狀例外狀況。
- status
- WebExceptionStatus
其中一個 WebExceptionStatus 值。
- response
- WebResponse
WebResponse 執行個體,含有遠端主機的回應。
範例
下列範例會 WebException 藉由指定錯誤訊息和 WebExceptionStatus來擲回 。
// Send the data.
Encoding^ ASCII = Encoding::ASCII;
String^ requestPage = String::Concat( "GET /nhjj.htm HTTP/1.1\r\nHost: ", connectUri, "\r\nConnection: Close\r\n\r\n" );
array<Byte>^ byteGet = ASCII->GetBytes( requestPage );
array<Byte>^ recvBytes = gcnew array<Byte>(256);
// Create an 'IPEndPoint' object.
IPHostEntry^ hostEntry = Dns::Resolve( connectUri );
IPAddress^ serverAddress = hostEntry->AddressList[ 0 ];
IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress,80 );
// Create a 'Socket' object for sending data.
Socket^ connectSocket = gcnew 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, (SocketFlags)(0) );
// Receive the information sent by the server.
Int32 bytesReceived = connectSocket->Receive( recvBytes, recvBytes->Length, (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( "404" ) != -1 )
{
bytesReceived = connectSocket->Receive( recvBytes, recvBytes->Length, (SocketFlags)(0) );
MemoryStream^ memoryStream = gcnew MemoryStream( recvBytes );
getStream = (System::IO::Stream^)(memoryStream);
// Create a 'WebResponse' object
WebResponse^ myWebResponse = (WebResponse^)(gcnew HttpConnect( getStream ));
Exception^ myException = gcnew Exception( "File Not found" );
// Throw the 'WebException' object with a message string, message status, InnerException and WebResponse
throw gcnew WebException( "The Requested page is not found.",myException,WebExceptionStatus::ProtocolError,myWebResponse );
}
connectSocket->Close();
// 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.
Dim ASCII As Encoding = Encoding.ASCII
Dim requestPage As String = "GET /nhjj.htm HTTP/1.1" + ControlChars.Lf + ControlChars.Cr + "Host: " + connectUri + ControlChars.Lf + ControlChars.Cr + "Connection: Close" + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr
Dim byteGet As [Byte]() = ASCII.GetBytes(requestPage)
Dim recvBytes(256) As [Byte]
' Create an 'IPEndPoint' object.
Dim hostEntry As IPHostEntry = Dns.Resolve(connectUri)
Dim serverAddress As IPAddress = hostEntry.AddressList(0)
Dim endPoint As New IPEndPoint(serverAddress, 80)
' Create a 'Socket' object for sending data.
Dim connectSocket As 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.
Dim bytesReceived As Int32 = connectSocket.Receive(recvBytes, recvBytes.Length, 0)
Dim headerString As [String] = ASCII.GetString(recvBytes, 0, bytesReceived)
' Check whether 'status 404' is there or not in the information sent by server.
If headerString.IndexOf("404") <> False Then
bytesReceived = connectSocket.Receive(recvBytes, recvBytes.Length, 0)
Dim memoryStream As New MemoryStream(recvBytes)
getStream = CType(memoryStream, Stream)
' Create a 'WebResponse' object.
Dim myWebResponse As WebResponse = CType(New HttpConnect(getStream), WebResponse)
Dim myException As 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)
End If
connectSocket.Close()
備註
實例初始化時,會將 WebException 屬性設定為的值message
、InnerException將屬性設定為的值innerException
、Status將屬性設定為的值status
,並將 Response 屬性設定為的值response
。Message 如果 為 message
null
,則 Message 屬性會初始化為系統提供的訊息。