HttpException 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
描述在處理 HTTP 請求時發生的例外。
public ref class HttpException : System::Runtime::InteropServices::ExternalException
public class HttpException : System.Runtime.InteropServices.ExternalException
[System.Serializable]
public class HttpException : System.Runtime.InteropServices.ExternalException
type HttpException = class
inherit ExternalException
[<System.Serializable>]
type HttpException = class
inherit ExternalException
Public Class HttpException
Inherits ExternalException
- 繼承
- 衍生
- 屬性
範例
以下程式碼範例示範如何使用該 HttpException 類別來產生自訂例外。 方法會 Button_Click 決定點擊的是哪個按鈕,然後呼叫 or CheckNumberCheckBoolean 方法。 如果使用者輸入的文字框值與預期類型不符, HttpException 會建立例外並拋出基於錯誤類型自訂訊息的訊息。
Important
此範例中有一個文字框可接受使用者輸入,這可能構成安全威脅。 預設情況下,ASP.NET 網頁會驗證使用者輸入中不包含腳本或 HTML 元素。 欲了解更多資訊,請參閱 腳本漏洞概述。
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void CheckNumber()
{
try
{
// Check whether the value is an integer.
String convertInt = textbox1.Text;
Convert.ToInt32(convertInt);
}
catch (Exception e)
{
// Throw an HttpException with customized message.
throw new HttpException("not an integer");
}
}
void CheckBoolean()
{
try
{
// Check whether the value is an boolean.
String convertBool = textbox1.Text;
Convert.ToBoolean(convertBool);
}
catch (Exception e)
{
// Throw an HttpException with customized message.
throw new HttpException("not a boolean");
}
}
void Button_Click(Object sender, EventArgs e)
{
try
{
// Check to see which button was clicked.
Button b = (Button)sender;
if (b.ID.StartsWith("button1"))
CheckNumber();
else if (b.ID.StartsWith("button2"))
CheckBoolean();
label1.Text = "You entered: " + textbox1.Text;
label1.ForeColor = System.Drawing.Color.Black;
}
// Catch the HttpException.
catch (HttpException exp)
{
label1.Text = "An HttpException was raised. "
+ "The value entered in the textbox is " + exp.Message.ToString();
label1.ForeColor = System.Drawing.Color.Red;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HttpException Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
<b>Enter a value in the text box.</b>
<br />
<asp:TextBox ID="textbox1"
Runat="server">
</asp:TextBox>
<br />
<asp:Button ID="button1"
Text="Check for integer."
OnClick="Button_Click"
Runat="server">
</asp:Button>
<br />
<asp:Button ID="button2"
Text="Check for boolean."
OnClick="Button_Click"
Runat="server">
</asp:Button>
<br />
<asp:Label ID="label1"
Runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub CheckNumber()
Try
' Check whether the value is an integer.
Dim convertInt As String = textbox1.Text
Convert.ToInt32(convertInt)
Catch e As Exception
' Throw an HttpException with customized message.
Throw New HttpException("not an integer")
End Try
End Sub
Sub CheckBoolean()
Try
' Check whether the value is an boolean.
Dim convertBool As String = textbox1.Text
Convert.ToBoolean(convertBool)
Catch e As Exception
' Throw an HttpException with customized message.
Throw New HttpException("not a boolean")
End Try
End Sub
Sub Button_Click(ByVal sender As [Object], ByVal e As EventArgs)
Try
' Check to see which button was clicked.
Dim b As Button = CType(sender, Button)
If b.ID.StartsWith("button1") Then
CheckNumber()
ElseIf b.ID.StartsWith("button2") Then
CheckBoolean()
End If
label1.Text = "You entered: " + textbox1.Text
label1.ForeColor = System.Drawing.Color.Black
' Catch the HttpException.
Catch exp As HttpException
label1.Text = "An HttpException was raised. " + "The value entered in the textbox is " + exp.Message.ToString()
label1.ForeColor = System.Drawing.Color.Red
End Try
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HttpException Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
<b>Enter a value in the text box.</b>
<br />
<asp:TextBox ID="textbox1"
Runat="server">
</asp:TextBox>
<br />
<asp:Button ID="button1"
Text="Check for integer."
OnClick="Button_Click"
Runat="server">
</asp:Button>
<br />
<asp:Button ID="button2"
Text="Check for boolean."
OnClick="Button_Click"
Runat="server">
</asp:Button>
<br />
<asp:Label ID="label1"
Runat="server">
</asp:Label>
</div>
</form>
</body>
</html>
備註
HttpException 類別是 HTTP 專用的例外類別,使 ASP.NET 能夠產生異常資訊。 關於拋出及處理例外的更多資訊,請參見例外。
建構函式
| 名稱 | Description |
|---|---|
| HttpException() |
初始化該類別的新實例 HttpException 並建立一個空 HttpException 物件。 |
| HttpException(Int32, String, Exception) |
使用 HTTP 回應狀態碼、錯誤訊息及HttpException屬性初始化該InnerException類別的新實例。 |
| HttpException(Int32, String, Int32) |
使用HTTP回應狀態碼、錯誤訊息及例外碼初始化該類別的新實例 HttpException 。 |
| HttpException(Int32, String) |
使用 HTTP 回應狀態碼及錯誤訊息初始化該 HttpException 類別的新實例。 |
| HttpException(SerializationInfo, StreamingContext) |
使用串行化數據,初始化 HttpException 類別的新實例。 |
| HttpException(String, Exception) |
利用錯誤訊息和屬性HttpException初始化該InnerException類別的新實例。 |
| HttpException(String, Int32) |
使用錯誤訊息和例外碼初始化該類別的新 HttpException 實例。 |
| HttpException(String) |
利用提供的錯誤訊息初始化該類別的新 HttpException 實例。 |
屬性
| 名稱 | Description |
|---|---|
| Data |
取得索引鍵/值組的集合,提供例外狀況的其他使用者定義資訊。 (繼承來源 Exception) |
| ErrorCode |
明白 |
| HelpLink |
取得或設定與這個例外狀況相關聯的說明檔連結。 (繼承來源 Exception) |
| HResult |
取得或設定 HRESULT,這是指派給特定例外狀況的編碼數值。 (繼承來源 Exception) |
| InnerException |
會取得 Exception 造成目前例外的實例。 (繼承來源 Exception) |
| Message |
取得描述目前例外狀況的訊息。 (繼承來源 Exception) |
| Source |
取得或設定造成錯誤之應用程式或物件的名稱。 (繼承來源 Exception) |
| StackTrace |
取得呼叫堆疊上即時框架的字串表示。 (繼承來源 Exception) |
| TargetSite |
取得擲回目前例外狀況的方法。 (繼承來源 Exception) |
| WebEventCode |
取得與 HTTP 例外相關的事件碼。 |
方法
| 名稱 | Description |
|---|---|
| CreateFromLastError(String) |
根據從 Windows API 回傳的錯誤碼建立新的 HttpException 例外 |
| Equals(Object) |
判斷指定的 物件是否等於目前的物件。 (繼承來源 Object) |
| GetBaseException() |
當在派生類別中被覆寫時,回傳 Exception 是一個或多個後續例外的根因。 (繼承來源 Exception) |
| GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
| GetHtmlErrorMessage() |
會收到 HTML 錯誤訊息,要回傳給客戶端。 |
| GetHttpCode() |
取得 HTTP 回應狀態碼,回傳給用戶端。 |
| GetObjectData(SerializationInfo, StreamingContext) |
取得例外的資訊並將其加入 SerializationInfo 物件。 |
| GetObjectData(SerializationInfo, StreamingContext) |
在衍生類別中覆寫時,使用例外狀況的相關信息來設定 SerializationInfo。 (繼承來源 Exception) |
| GetType() |
取得目前實例的運行時間類型。 (繼承來源 Exception) |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| ToString() |
回傳包含錯誤 HRESULT 的字串。 (繼承來源 ExternalException) |
事件
| 名稱 | Description |
|---|---|
| SerializeObjectState |
發生於例外狀況串行化以建立例外狀況狀態物件,其中包含例外狀況的串行化數據。 (繼承來源 Exception) |