0

0

C# try catch怎么用 C#异常处理try-catch-finally语句块详解

煙雲

煙雲

发布时间:2025-11-19 17:52:31

|

241人浏览过

|

来源于php中文网

原创

在C#中,try-catch-finally用于处理异常,提升程序健壮性。1. try块包含可能出错的代码;2. catch块按具体到泛化顺序捕获异常,如DivideByZeroException和IndexOutOfRangeException;3. finally块始终执行,用于释放资源;4. 推荐用using替代finally管理资源;5. 可用throw抛出自定义或系统异常。

c# try catch怎么用 c#异常处理try-catch-finally语句块详解

在C#中,try-catch-finally语句用于处理程序运行时可能出现的异常,防止程序因未处理的错误而崩溃。合理使用异常处理机制,能提升代码的健壮性和可维护性。

try-catch基本用法

当某段代码可能引发异常时,将其放入try块中,并用catch块捕获并处理异常。

语法结构如下:

try
{
    // 可能出错的代码
}
catch (ExceptionType ex)
{
    // 处理异常的代码
}

示例:处理除零异常

try
{
    int result = 10 / 0;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("不能除以零:" + ex.Message);
}

多个catch块处理不同异常

C#允许按具体异常类型分别捕获,应将更具体的异常放在前面,避免被泛化类型提前捕获。

try
{
    int[] arr = new int[5];
    arr[10] = 1; // 索引越界
}
catch (IndexOutOfRangeException ex)
{
    Console.WriteLine("数组索引越界:" + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("发生其他异常:" + ex.Message);
}

注意:所有异常都继承自System.Exception,所以把它放在最后,作为兜底处理。

finally块的作用

finally块无论是否发生异常都会执行,常用于释放资源,如关闭文件、数据库连接等。

8spAi
8spAi

8spAi - 创作、绘画、思维导图一站搞定!

下载

即使try或catch中有return语句,finally中的代码仍会执行。

FileStream fs = null;
try
{
    fs = File.Open("test.txt", FileMode.Open);
    // 读取文件内容
}
catch (FileNotFoundException ex)
{
    Console.WriteLine("文件未找到:" + ex.Message);
}
finally
{
    if (fs != null)
        fs.Dispose(); // 释放资源
}

推荐使用using语句替代finally进行资源管理,更简洁安全。

抛出异常与自定义异常

可以用throw关键字手动抛出异常。

if (age {
    throw new ArgumentException("年龄不能为负数");
}

也可以创建自定义异常类,继承自Exception或其他异常类型,便于区分业务错误。

public class InvalidUserException : Exception
{
    public InvalidUserException() { }
    public InvalidUserException(string message) : base(message) { }
}

基本上就这些。掌握try-catch-finally结构,理解异常类型层次,合理使用throw和finally,能让程序更稳定可靠。不复杂但容易忽略细节,比如异常捕获顺序和资源释放方式。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

314

2023.08.02

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

231

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

435

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

719

2023.08.22

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

314

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

528

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

49

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

193

2025.08.29

PPT动态图表制作教程大全
PPT动态图表制作教程大全

本专题整合了PPT动态图表制作相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.07

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
极客学院Java8新特性视频教程
极客学院Java8新特性视频教程

共17课时 | 3.7万人学习

C# 教程
C# 教程

共94课时 | 6.2万人学习

C 教程
C 教程

共75课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号