【C#之Try……Catch例項】
前言:
這個階段我在學習設計模式,今天準備實戰了,遇到了try……catch,在學C#的時候還記憶深刻呢?現在不懂得期中的道理了,溫故知新,知識需要反覆!今天,從例項中在溫故一下Try……Catch,而順道說說try……catch……finally 。
中心:
在C#中Try……Catch異常處理中,如果沒有TRY,程式直接就會崩潰,如果沒有Catch,異常總是向上層丟擲或中斷程式。catch可以有多個,也可以沒有,每個catch可以處理一個特定的異常。
(一)構造
<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;"><span style="white-space:pre"> </span>try
{
//有可能發生錯誤的程式塊
}
catch (Exception)
{
//當發生錯誤的時候才會執行的程式碼塊
throw;
} </span></span></span>
(二)例項中運用
<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace count
{
class Program
{
static void Main(string[] args)
{
try
{
Console.Write("請輸入數字A:"); //顯示請輸入數字A:
string strNumberA = Console.ReadLine(); //獲取使用者輸入的資訊
Console.Write("請輸入運算子(+、-、*、/):");//顯示輸入運算子
string strOperate = Console.ReadLine();//獲取使用者輸入的預算符
Console.Write("請輸入數字B:");//請輸入數字B:
string strNumberB = Console.ReadLine();//請輸入數字B:
string strResult = "";//運算結果
switch (strOperate )
{
case "+": //分支語句“+”運算
strResult = Convert.ToString(Convert.ToDouble
(strNumberA) + Convert.ToDouble(strNumberB));
break; //結束當前程式
case "-"://分支語句“-”運算
strResult = Convert.ToString(Convert.ToDouble
(strNumberA) - Convert.ToDouble(strNumberB));
break; //結束當前程式
case "*"://分支語句“*”運算
strResult = Convert.ToString(Convert.ToDouble
(strNumberA) * Convert.ToDouble(strNumberB));
break; //結束當前程式
case "/"://分支語句“/”運算
if (strNumberB != "0")//如果數字B不等於0
strResult = Convert.ToString(Convert.ToDouble //執行運算
(strNumberA) / Convert.ToDouble(strNumberB));
else //否則
strResult = "除數不能為0";//結果為“除數不能為0”
break; //結束當前程式
}
Console.WriteLine("結果是" + strResult);//顯示結果
Console.ReadLine();
}
catch (Exception ex)//處理錯誤資訊
{
Console.WriteLine("您的輸入有錯:" + ex.Message);//顯示錯誤資訊
}
}
}
}</span></span></span>
(三)執行結果1.正常: 2.除數為0
3.輸入錯誤
(四)Try……Catch……finally(實際上finally可加可不加)
<span style="font-size:18px;"><span style="font-size:18px;"> try
{
//有可能發生錯誤的程式塊
}
catch (Exception)
{
//當發生錯誤的時候才會執行的程式碼塊
throw;
}
finally
{
//無論是否發生錯誤都會執行的程式碼塊
}</span></span>
(五)在上面的例項中加入finally程式碼
<span style="font-size:18px;"><span style="font-size:18px;"> finally
{
Console.WriteLine("謝謝您的使用!歡迎下次光臨!");
}</span></span>
執行效果:(六)補充
可加入下面程式碼,進行限度提示
<span style="font-size:18px;"><span style="font-size:18px;"><pre name="code" class="csharp">catch (IndexOutOfRangeException ex)
{
Console.WriteLine("Indexoutof異常:" + "不出現異常的限制" + ex.Message);
}</span></span>
總結:
- 不要過多使用 catch。通常應允許異常在呼叫堆疊中往上傳播。
- 使用 try-finally 並避免將 try-catch 用於清理程式碼。在書寫規範的異常程式碼中,try-finally 遠比 try-catch 更為常用。
相關文章
- c#之異常處理tcbs_try_catch_finallyC#
- Laravel try catchLaravel
- js try catchJS
- Java之異常處理try{}catch(){}Java
- iOS的@try、@catch()iOS
- c# throw及try_catch關聯測試C#
- c# 異常處理try catch finally_throwC#
- Java try catch finallyJava
- Java之try-catch和throws的區別Java
- c++ try catch 問題C++
- (十四).try-throw-catch機制
- JavaScript try catch finally 語句JavaScript
- js中try和catch的用法JS
- JavaScript錯誤_throw、try和catchJavaScript
- Java try catch finally 總結Java
- JavaScript try/catch/finally 語句JavaScript
- 微軟:請不要使用 Try/Catch微軟
- java中try catch塊的使用Java
- C# 關於Try/Catch對系統效能影響的總結C#
- PHP 的異常處理之try和catch用法小結PHP
- JS 使用try catch捕獲異常JS
- Java中try()catch{}的使用方法Java
- tcl/tk例項詳解——catch和errorError
- try throw catch 語句檢測input值
- java try(){}catch(){}自動資源釋放Java
- IDEA 自動生成try,catch快捷鍵Idea
- c++中的try-catch及throwC++
- JavaScript 中 try...catch 的 10 個使用技巧JavaScript
- NodeJS 實戰系列:如何設計 try catchNodeJS
- Nodejs try catch捕捉異常失效場景NodeJS
- SQL SERVER 裡的錯誤處理(try catch)SQLServer
- C# BitArray 例項C#
- 在 SQL Server 中使用 Try Catch 處理異常SQLServer
- 前端魔法堂——異常不僅僅是try/catch前端
- try catch 對程式碼執行的效能影響
- Sqlserver Try Catch時Catch捕獲到錯誤則重試一次的寫法SQLServer
- Will it finally: 關於 try/catch 的一些細節
- 異常-try...catch的方式處理異常1