c#基礎07(調試與異常捕捉)

文章目錄

    • 調試與異常捕捉
      • 調試
      • 異常處理
        • C#中的異常類
        • 異常處理
        • 拋出對象

調試與異常捕捉

很多時間,寫代碼不能一擼到底,中間都是經歷過無數次的調試,才能正常正確的運行起來。.Net調試有很多方法和技巧。

調試

在C#中程序調試主要指在Visual Studio2022中調試程序,包括設置斷點、監視斷電,以及逐語句、逐過程、使用一些輔助窗口來調試程序。
在這里插入圖片描述
在這里插入圖片描述
鼠標左鍵點擊最左邊的灰色區域,會出現一個小紅點,則表示設置斷點成功!
點擊在這里插入圖片描述,程序則會在你打斷點的地方掛起。
如果你想讓程序繼續往下執行,則需要點擊逐過程小圖標,或者按F10。
在這里插入圖片描述
如果你覺得沒必要再調試下去了,則可以點擊 “繼續” 按鈕,則程序會取消掛起遇到直到下一個斷點。

取消斷點

對著左邊的小紅點再點一次,則表示取消斷點。

異常處理

異常是在程序執行期間出現的問題。C# 中的異常是對程序運行時出現的特殊情況的一種響應,比如嘗試除以零。

異常提供了一種把程序控制權從某個部分轉移到另一個部分的方式。C# 異常處理時建立在四個關鍵詞之上的:trycatchfinallythrow

  • try:一個try塊表示了一個將被激活的特定的異常的代碼塊。后跟一個或多個catch塊。
  • catch:程序通過異常處理程序捕獲異常
  • finally:finally塊用于執行給定的語句,不管異常是否被拋出都會執行。
  • throw:當問題出現時,程序拋出一個異常。

語法

try
{//可能出現異常的語句
}
catch(exceptionname e1)
{//錯誤處理代碼
}
catch(exceptionname e2)
{//錯誤處理代碼
}
catch(exceptionname e3)
{//錯誤處理代碼
}
catch(exceptionname eN)
{//錯誤處理代碼
}
finally
{//要執行的語句
}
C#中的異常類

C# 異常是使用類來表示的。C# 中的異常類主要是直接或間接地派生于 System.Exception 類。System.ApplicationExceptionSystem.SystemException 類是派生于 System.Exception類的異常類。

System.ApplicationException 類支持由應用程序生成的異常。所以程序員定義的異常都應派生自該類。

下表列出了一些派生自 System.SystemException 類的預定義的異常類:

異常類描述
System.IO.IOException處理 I/O 錯誤。
System.IndexOutOfRangeException處理當方法指向超出范圍的數組索引時生成的錯誤。
System.ArrayTypeMismatchException處理當數組類型不匹配時生成的錯誤。
System.NullReferenceException處理當依從一個空對象時生成的錯誤。
System.DivideByZeroException處理當除以零時生成的錯誤。
System.InvalidCastException處理在類型轉換期間生成的錯誤。
System.StackOverflowException處理棧溢出生成的錯誤。
異常處理

C# 以 try 和 catch 塊的形式提供了一種結構化的異常處理方案。使用這些塊,把核心程序語句與錯誤處理語句分離開。

示例:

int result = 0;
public static void divsion(int num1,int num2)
{try{result = num1 / num2;}catch(DivideByZeroException e){Console.WriteLine("Exception caught:{0}",e);}finally{Console.WriteLine("Result:{0}",result);}
}
static void Main(string[] args)
{division(25,0);Console.ReadKey();
}
拋出對象

如果異常是直接或間接派生自 System.Exception 類,您可以拋出一個對象。您可以在 catch 塊中使用throw 語句來拋出當前的對象,如下所示:

Catch(Exception e)
{...Throw e
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81501.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81501.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81501.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一種比較精簡的協議

鏈接地址為:ctLink: 一個比較精簡的支持C/C的嵌入式通信的中間協議。 本文采用的協議格式如下 *幀頭 uint8_t 起始字節:0XAF\ *協議版本 uint8_t 使用的協議版本號:當前為0X01\ *負載長度 uint8_t 數據段內容長…

【windwos】文本編輯器Notepad++ 替代品Notepad--

一、N和N--對比介紹 曾經備受推崇的「Notepad」曾是Windows上的經典代碼編輯器。然而,作者的一些政治言論已經讓它被廣大中國用戶拋棄。 一個名為「Notepad--」的新編輯器,也是開源免費,功能和實用性也在盡可能接近。與此同時,「N…

貪心算法套路模板+詳細適用場景+經典題目清單

1. 排序 貪心選擇 適用場景: 任務調度問題:需要安排多個任務,盡量完成更多任務或最小沖突。 區間調度問題:選出最多互不重疊的區間。 區間覆蓋問題:用最少區間覆蓋某個范圍。 合并區間問題:合并重疊區…

Qt QPaintEvent繪圖事件painter使用指南

繪制需在paintEvent函數中實現 用圖片形象理解 如果加了刷子再用筆就相當于用筆畫過的區域用刷子走 防雷達&#xff1a; 源文件 #include "widget.h" #include "ui_widget.h" #include <QDebug> #include <QPainter> Widget::Widget(QWidget…

SIGGRAPH 2025 | 快手可靈團隊提出3D感知的電影級文本到視頻生成框架CineMaster

Sora、可靈等視頻生成模型令人驚艷的性能表現使得創作者僅依靠文本輸入就能夠創作出高質量的視頻內容。然而&#xff0c;我們常見的電影片段通常是由導演在一個場景中精心布置多個目標的運動、攝像機拍攝角度后再剪輯而成的。例如&#xff0c;在拍攝賽車追逐的場景時&#xff0…

在springboot,禁止查詢數據庫種的某字段

使用Mp注解&#xff08;只對Mp提供的基礎方法有效&#xff09; 在注解TableField后面加一個select false,這樣就無法查詢到該表下密碼這個字段了 但需要注意的是如果是自己寫的sql就無法通過這一種方法實現了

Spring Boot + MyBatis-Plus實現操作日志記錄

創建數據庫表 CREATE TABLE sys_operation_log (log_id bigint NOT NULL AUTO_INCREMENT COMMENT 日志ID,operation_type varchar(20) NOT NULL COMMENT 操作類型,operation_module varchar(50) NOT NULL COMMENT 操作模塊,operation_desc varchar(200) DEFAULT NULL COMMENT …

開源多模態新標桿——BAGEL本地部署教程:7B參數撬動萬億數據

一、簡介 BAGEL &#xff0c;這是一個開源的多模態基礎模型&#xff0c;具有 70 億個激活參數&#xff08;總共 140 億個&#xff09;&#xff0c;并在大規模交錯多模態數據上進行訓練。 BAGEL 在標準多模態理解排行榜上超越了當前頂級的開源 VLMs 如 Qwen2.5-VL 和 InternVL…

SD卡+FATFS+Tinyjpeg圖片解碼顯示 (STM32F103VET6通過CubeMX快速建立工程)

先展示最終實現的功能效果如下: 1.目的與意義 為什么選用SD卡? 使用Nor-flash(W25Q系列)進行圖片的存取,需要先把圖片通過對應軟件批量處理為二進制bin文件,再通過SPI等通訊方式將 bin文件燒寫進Nor-flash才能進行使用,使用時還要記住每張圖片的首地址和對應字節數,MC…

數據結構-散列表查找(哈希表)

一&#xff0c;散列表查找定義 散列技術是在記錄的存儲位置和它的關鍵字之間建立一個確定的對應關系f&#xff0c;使得每個關鍵字key對應一個存儲位置f(key)。查找時&#xff0c;根據這個確定的對應關系找到給定值key的映射f(key)&#xff0c;若查找集中存在這個記錄&#xff0…

Stable Diffusion 簡單了解一下

1. 幫我簡單介紹一下:StableDiffusion ?? Stable Diffusion 是什么? Stable Diffusion 是一個 文本生成圖像(Text-to-Image) 的人工智能模型。你只需要輸入一句話,它就能根據這句話生成一張高質量的圖片。 比如: "一只穿著太空服的貓,在月球上彈吉他"St…

R語言科研編程-標準偏差柱狀圖

生成隨機數據 在R中&#xff0c;可以使用rnorm()生成正態分布的隨機數據&#xff0c;并模擬分組數據。以下代碼生成3組&#xff08;A、B、C&#xff09;隨機數據&#xff0c;每組包含10個樣本&#xff1a; set.seed(123) # 確保可重復性 group_A <- rnorm(10, mean50, sd…

普羅米修斯監控CPU\內存匯聚圖

要找出內存使用率大于80%的主機&#xff0c;你可以使用以下PromQL查詢。這個查詢會計算每個節點的內存使用率&#xff0c;然后篩選出使用率超過80%的節點&#xff1a; (avg by(nodename) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)* on(instance) group…

飛牛fnNAS手機相冊備份及AI搜圖

目錄 一、相冊安裝應用 二、手機開啟自動備份 三、開始備份 四、照片檢索 五、AI搜圖設置 六、AI搜圖測試 七、照片傳遞 現代的手機,已經成為我們最親密的“伙伴”。自從手機拍照性能提升后,手機已經完全取代了簡單的卡片相機,而且與入門級“單反”相機發起了挑戰。在…

華為高斯數據庫(GaussDB)深度解析:國產分布式數據庫的旗艦之作

高斯數據庫介紹 一、高斯數據庫概述 GaussDB是華為自主研發的新一代分布式關系型數據庫&#xff0c;專為企業核心系統設計。它支持HTAP&#xff08;混合事務與分析處理&#xff09;&#xff0c;兼具強大的事務處理與數據分析能力&#xff0c;是國產數據庫替代的重要選擇。 產…

網頁 CSS美化2(詳解)

這是接著上一篇css基礎的第二篇&#xff1a;主要開始對頁面的布局進行學習 顯示模式&#xff1a; 塊級模式&#xff08;Block&#xff09; 特點 &#xff1a; 元素會獨占一行&#xff0c;在其前后會自動換行&#xff0c;與其他塊級元素在垂直方向上排列。 寬度默認為所在容器…

JSON解析性能優化全攻略:協程調度器選擇與線程池饑餓解決方案

簡介 JSON解析是現代應用開發中的基礎操作,但在使用協程處理時,若調度器選擇不當,會導致性能嚴重下降。特別是當使用Dispatchers.IO處理JSON解析時,可能觸發線程池饑餓,進而引發ANR或系統卡頓。本文將深入剖析這一問題的技術原理,提供全面的性能檢測方法,并給出多種優化…

python打卡第37天

知識點回顧&#xff1a; 過擬合的判斷&#xff1a;測試集和訓練集同步打印指標模型的保存和加載 僅保存權重保存權重和模型保存全部信息checkpoint&#xff0c;還包含訓練狀態 早停策略 作業&#xff1a;對信貸數據集訓練后保存權重&#xff0c;加載權重后繼續訓練50輪&#xf…

【洛谷P9303題解】AC- [CCC 2023 J5] CCC Word Hunt

在CCC單詞搜索游戲中&#xff0c;單詞隱藏在一個字母網格中。目標是確定給定單詞在網格中隱藏的次數。單詞可以以直線或直角的方式排列。以下是詳細的解題思路及代碼實現&#xff1a; 傳送門&#xff1a; https://www.luogu.com.cn/problem/P9303 解題思路 輸入讀取與初始化&…

LangGraph + LLM + stream_mode

文章目錄 LLM 代碼valuesmessagesupdatesmessages updatesmessages updates 2 LLM 代碼 from dataclasses import dataclassfrom langchain.chat_models import init_chat_model from langgraph.graph import StateGraph, STARTfrom langchain_openai import ChatOpenAI # 初…