c#使用筆記之try catch和throw

一、try catch

一種報錯的捕捉機制,try塊里運行的代碼出現錯誤的時候就會去執行catch塊所以一般catch塊里都是把錯誤打印出來或者保存到log日志里;

1.1、具體使用

catch可以用()來選擇捕捉什么類型的錯誤,一般用Exception 因為Exception是所有報錯類型的基類;也可以用詳細的只捕捉特定的報錯類型這樣方便每種報錯有對應的報錯處理;在這種情況下一般就會使用多個catch捕捉不同類型的報錯;

try
{}
catch (Exception ex0)
{}
catch (Exception ex1)
{}
catch (Exception ex2)
{}

1.2、try catch finally

finally就是在try塊里不管出不出錯最后都要執行的代碼;一般用于關閉連接,清理緩存;注意也是從上到下執行的,所以在報錯的情況下會先執行catch塊再執行finally塊;

try
{
}
catch()
{}
finally
{}

二、throw

throw是一種異常拋出機制,會傳遞給最近的一個try catch(同一個方法里就傳給同一個的,沒有就傳給上一層的catch),一般不用throw直接用try catch自己直接抓;

2.1使用場景

但是比如要保存或者打印報錯但是這個方法是一個單獨的類庫里這時候就可以用throw來拋出異常,在上一層的catch里捕捉并且打印保存;

try
{}
catch (Exception ex)
{throw new Exception(”報錯“,ex);
}

2.2自定義異常

最主要的用法就是自定義異常,比如一個學生類那學生類的age年齡屬性就不能小于0,正常賦值0不會報錯就需要throw;或者例子里的amount不能<=0;(nameof方法是返回變量或者方法的名字可以知道是具體哪個值的問題;)

 if (amount <= 0){throw new Exception("存款金額必須大于零。", nameof(amount));}

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

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

相關文章

(新手友好)MySQL學習筆記(9):索引(常見索引類型,查找結構的發展(二分查找法,二叉搜索樹,平衡二叉樹,B樹,B+樹))

目錄 索引 常見索引類型 B樹 二分查找法 二叉搜索樹和平衡二叉樹 B樹和B樹 索引 index&#xff0c;是存儲引擎用于快速找到數據的一種數據結構。 MySQL默認使用InnoDB存儲引擎&#xff0c;該存儲引擎是最重要&#xff0c;使用最廣泛的&#xff0c;除非有非常特別的原因需要使用…

進程間通信1(匿名管道)Linux

1 進程間通信的必要性 首先要明確進程間是相互獨立的&#xff08;獨享一份虛擬地址空間&#xff0c;頁表&#xff0c;資源&#xff09;&#xff0c;那怎么樣才能使得兩個進程間實現資源的發送&#xff1f;所以&#xff0c;兩個進程一定需要看到同一份資源&#xff0c;并且?個…

CAN2.0、DoIP、CAN-FD汽車協議詳解與應用

一、CAN2.0 協議詳解與應用示例 1. 技術原理與特性 協議架構&#xff1a;基于 ISO 11898 標準&#xff0c;采用載波監聽多路訪問 / 沖突檢測&#xff08;CSMA/CD&#xff09;機制&#xff0c;支持 11 位&#xff08;CAN2.0A&#xff09;或 29 位&#xff08;CAN2.0B&#xff…

使用nvm管理npm和pnpm

1.使用nvm管理npm // 查看nvm版本 nvm -v // 查看可安裝的 node 版本 nvm ls-remote // 安裝指定 node 版本 nvm install 24.0.0 // 查看當前已安裝的 node 版本及當前使用的版本 nvm list // 使用某個版本 node nvm use 24.0.0 // 卸載指定 node 版本 nvm uninstall 16.20.1…

YOLO11+QT6+Opencv+C++訓練加載模型全過程講解

實現效果&#xff1a; Yolov11環境搭建&#xff08;搭建好的可以直接跳過&#xff09; 最好使用Anconda進行包管理&#xff0c;安裝可參考【文章】。下面簡單過一下如何快速部署環境。如果搭建過或可以參考其他文章可以跳過Yolo11環境搭建這一章節。總體來說Yolov11環境搭建越…

Python 腳本,用于將 PDF 文件高質量地轉換為 PNG 圖像

import os import fitz # PyMuPDF from PIL import Image import argparse import logging from tqdm import tqdm# 配置日志 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s) logger logging.getLogger(PDF2PNG)def convert_pdf_…

【CUDA GPU 支持安裝全攻略】PyTorch 深度學習開發者指南

PyTorch 的 CUDA GPU 支持 安裝五條鐵律&#xff08;最新版 2025 修訂&#xff09;&#xff08;適用于所有用戶&#xff09;-CSDN博客 是否需要預先安裝 CUDA Toolkit&#xff1f;——按使用場景分級推薦及進階說明-CSDN博客 “100% 成功的 PyTorch CUDA GPU 支持” 安裝攻略…

Cyberith 運動模擬器Virtualizer2:提升虛擬現實沉浸體驗

奧地利Cyberith公司是一家專注于虛擬現實&#xff08;VR&#xff09;互動解決方案的創新型科技企業&#xff0c;以其研發的Virtualizer虛擬現實步態模擬設備而聞名。該公司的核心技術體現在其設計和制造的全方位跑步機式VR交互平臺上&#xff0c;使得用戶能夠在虛擬環境中實現自…

常見的數據處理方法有哪些?ETL中的數據處理怎么完成

在數字化轉型縱深推進的背景下&#xff0c;數據作為新型生產要素已成為驅動企業戰略決策、科研創新及智能化運營的核心戰略資產。數據治理價值鏈中的處理環節作為關鍵價值節點&#xff0c;其本質是通過系統化處理流程將原始觀測數據轉化為結構化知識產物&#xff0c;以支撐預測…

WHAT - 為甲方做一個官網(二)- 快速版

文章目錄 一、明確需求優先級&#xff08;快速決策&#xff09;二、推薦零代碼/低代碼工具&#xff08;附對比&#xff09;方案1&#xff1a;低代碼建站平臺&#xff08;適合無技術用戶&#xff0c;拖拽式操作&#xff09;方案2&#xff1a;CMS系統&#xff08;適合內容更新頻繁…

音視頻之H.264視頻編碼傳輸及其在移動通信中的應用

系列文章&#xff1a; 1、音視頻之視頻壓縮技術及數字視頻綜述 2、音視頻之視頻壓縮編碼的基本原理 3、音視頻之H.264/AVC編碼器原理 4、音視頻之H.264的句法和語義 5、音視頻之H.264/AVC解碼器的原理和實現 6、音視頻之H.264視頻編碼傳輸及其在移動通信中的應用 7、音視…

C#語言入門-task2 :C# 語言的基本語法結構

下面從四個方面對C#的基本語法進行簡單介紹&#xff1a; 1. 數據類型 C#的類型可分為值類型和引用類型。值類型變量直接存儲數據&#xff0c;引用類型變量則存儲對象的引用。 值類型&#xff1a;涵蓋整數類型&#xff08;像int、long&#xff09;、浮點類型&#xff08;例如…

c#筆記之類的常量、字段和屬性

學習內容: 一、字段 字段是為了對象或者類型存儲數據的,可以表達一個對象或者類型的狀態;也叫做成員變量;注意字段是在類里面聲明的;在方法里聲明的是局部變量; 1.1實例字段 用來表示每個實例的狀態;比如一個students類;要了解一個學生一般看名字和成績;所以名字和…

Linux 常用命令(入門)

Linux 常用命令 一、Linux 命令基礎 (一)命令格式 Linux 命令的一般格式為:command [-options] [parameter1] … 。其中,command 是命令名,通常是相應功能的英文單詞或其縮寫;[-options] 是選項,用于對命令進行控制,可省略;parameter1 … 是傳給命令的參數,可以是…

CppCon 2016 學習:Parallelism in Modern C++

這段介紹的是 HPX (High Performance ParalleX)&#xff0c;一個現代C的通用并行運行時系統&#xff0c;重點包括&#xff1a; 通用性&#xff1a;適用于各種規模的應用&#xff0c;從小型到超大規模分布式系統。統一標準API&#xff1a;符合C標準&#xff0c;方便編寫異步、并…

機器學習監督學習實戰七:文本卷積神經網絡TextCNN對中文短文本分類(15類)

本文介紹了一個基于TextCNN模型的文本分類項目&#xff0c;使用今日頭條新聞數據集進行訓練和評估。項目包括數據獲取、預處理、模型訓練、評估測試等環節。數據預處理涉及清洗文本、中文分詞、去除停用詞、構建詞匯表和向量化等步驟。TextCNN模型通過卷積層和池化層提取文本特…

iot-dc3 項目Bug修復保姆喂奶級教程

一.Uncaught (in promise) ReferenceError: TinyArea is not defined 1.觸發場景 前端設備模塊,點擊關聯模板、關聯位號、設備數據,無反應,一直切不過去,沒有報錯通知,F12查看控制臺報錯如下: 2.引起原因 前端導入的庫為"@antv/g2": "^5.3.0",在 P…

Spring Boot + MyBatis Plus + SpringAI + Vue 畢設項目開發全解析(源碼)

前言 前些天發現了一個巨牛的人工智能免費學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站 Spring Boot MyBatis Plus SpringAI Vue 畢設項目開發全解析 目錄 一、項目概述與技術選型 項目背景與需求分析技術棧選擇…

Vitess數據庫部署與運維深度指南:構建可伸縮、高可用與安全的云原生數據庫

摘要 Vitess是一個為MySQL和MariaDB設計的云原生、水平可伸縮的分布式數據庫系統&#xff0c;它通過分片&#xff08;sharding&#xff09;實現無限擴展&#xff0c;同時保持對應用程序的透明性&#xff0c;使其無需感知底層數據分布。該項目于2019年從云原生計算基金會&#…

SpringAI+DeepSeek大模型應用開發——6基于MongDB持久化對話

持久化對話 默認情況下&#xff0c;聊天記憶存儲在內存中ChatMemory chatMemory new InMemoryChatMemory()。 如果需要持久化存儲&#xff0c;可以實現一個自定義的聊天記憶存儲類&#xff0c;以便將聊天消息存儲在你選擇的任何持久化存儲介質中。 MongoDB 文檔型數據庫&…