C#中的try catch 和finally


在c#中處理錯誤經常會使用這幾個關鍵字。本文介紹一下其用法

這三個關鍵字try是必定要用的,要不然就失去了意義。然后catch和finally可以不用但是要注意遵循原則

一個或多個catch的時間可以不用finally但是也可以用。

如果沒有catch的時間必須要用finally。

其中每個關鍵字都對應的有自己的代碼塊

如這樣的形式

try
{
   //code
}
catch
{
  //code
}
finally
{
   //code
}

現在開始說正事了

try代碼塊主要包括出錯的代碼如
 i = Convert.ToInt32(str);

不知道是否能轉化成功。
catch是處理異常的代碼

finally是處理異常之后要做的事情

        static void Main(string[] args)
        {
            int i=1 ;
            string str = "dfdfs";
            try
            {
                i = Convert.ToInt32(str);//有異常的地方
            }
            catch //(Exception e)
            {
                //Console.WriteLine(e.Message);
                i = 3;//處理異常
                //throw new Exception("轉化失敗");
            }
            /*
              這里可以添加上,根據異常的類型來匹配,有點像case。關於異常的類型有很多
//System

ArgumentNullException //參數異常
ArgumentOutOfRangeException //參數異常
DivideByZeroException //除數為0異常
IndexOutOfRangeException //索引超出范圍的異常
NullReference-Exception//參數異常
OverflowException //溢出異常
StackOverflowException //堆溢出異常

//System.IO

DirectoryNotFoundException//找不到路徑的異常
EndOfStreamException //結束流的異常
FileNotFoundException//找不到文件異常
PathToo-LongException //路徑太長異常

//System.Data

DuplicateNameException
InvalidConstrainException
InvalidExpressionException
Missing-PrimaryKeyException
NoNullAllowed-Exception
ReadOnlyException

//System.Runtime.InteropServices

InvalidComObjectException
InvalidOleVariantTypeException
SEHException
              catch(ExceptionType e )
               {
             //異常處理
               }
             */
            finally
            {
                Console.WriteLine(i.ToString());
            
            }
}


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM