京东商城网站建设策划书,商城网站公司,在线设计签名免费网站,谷德设计网打不开文章目录 1、C# 异常处理原理#xff1a;2、C# 异常处理实用案例#xff08;简化版示例#xff09;#xff1a;3、throw关键字 C# 异常处理是一种用于捕获和处理程序运行时错误的机制#xff0c;它允许程序在遇到不可预见或非正常条件时进行优雅地恢复或失败。C# 中的异常… 文章目录 1、C# 异常处理原理2、C# 异常处理实用案例简化版示例3、throw关键字 C# 异常处理是一种用于捕获和处理程序运行时错误的机制它允许程序在遇到不可预见或非正常条件时进行优雅地恢复或失败。C# 中的异常处理基于 try-catch-finally 结构并且所有异常类都派生于 System.Exception 类。 1、C# 异常处理原理
try 块包含可能会抛出异常的代码。如果在这部分代码中发生异常控制权会立即转移到相应的 catch 块。
try
{// 可能会抛出异常的代码int result Divide(10, 0); // 示例除以零异常
}catch 块用于捕获特定类型的异常。可以有多个 catch 块来捕获不同类型的异常按照从最具体到最一般的顺序排列。
catch (DivideByZeroException ex) // 捕获除以零异常
{Console.WriteLine(Error: Division by zero occurred.);
}catch (ArithmeticException ex) // 捕获其他算术异常
{Console.WriteLine(Error: An arithmetic error happened.);
}catch (Exception ex) // 捕获所有未被前面 catch 块捕获的异常
{Console.WriteLine(A general exception was caught: ex.Message);
}finally 块无论是否发生异常都会执行这部分代码。通常用于资源清理如关闭文件、数据库连接等。
finally
{Console.WriteLine(This block is always executed after the try-catch blocks.);
}2、C# 异常处理实用案例简化版示例 文件操作 打开文件时捕获 FileNotFoundException。 try
{using (StreamReader reader new StreamReader(non_existent_file.txt)){string content reader.ReadToEnd();}
}
catch (FileNotFoundException ex)
{Console.WriteLine($File not found: {ex.FileName});
}数据库查询 处理 SQL 查询引发的 SqlException。 try
{using (SqlConnection connection new SqlConnection(connectionString)){SqlCommand command new SqlCommand(query, connection);connection.Open();command.ExecuteNonQuery();}
}
catch (SqlException ex)
{Console.WriteLine(SQL Error: ex.Message);
}网络请求 使用 HttpClient 进行网络调用时捕获 HttpRequestException。 try
{using (HttpClient client new HttpClient()){HttpResponseMessage response await client.GetAsync(http://example.com/notfound);response.EnsureSuccessStatusCode();}
}
catch (HttpRequestException ex)
{Console.WriteLine(Network request failed: ex.Message);
}非法参数检查 检查方法传入的参数是否有效若无效则抛出自定义异常。 public void ProcessData(int input)
{if (input 0){throw new ArgumentException(Input must be non-negative.);}try{// 正常处理逻辑}catch (Exception ex){// 其他内部异常处理}
}资源清理 使用 finally 来确保流或连接始终关闭。 Stream stream null;
try
{stream File.OpenRead(important_file.bin);// 对文件流的操作...
}
catch (IOException ex)
{Console.WriteLine(IO Error: ex.Message);
}
finally
{stream?.Dispose(); // 或者使用 using 语句代替 finally 块
}3、throw关键字
throw 关键字用于显式抛出一个异常对象。当你在代码中遇到错误条件或不满足预期的情况时可以使用 throw 来创建并抛出一个异常。 csharp throw new ArgumentException(“Invalid argument provided.”); 当你执行 throw 语句时它会立即停止当前方法的执行并开始寻找合适的异常处理结构即 catch 块从当前方法的调用者开始向上遍历调用栈。
总结一下 throw 和 catch 的区别与用途
throw用于启动异常传播过程强制程序暂停正常执行流程并转而处理错误情况。 catch用于接收和管理由 throw 引发的异常提供了一种机制来应对程序运行时出现的问题确保程序不会因未处理的异常而意外终止同时能够针对性地执行错误恢复逻辑。
python学习汇总连接 50个开发必备的Python经典脚本(1-10)
50个开发必备的Python经典脚本(11-20)
50个开发必备的Python经典脚本(21-30)
50个开发必备的Python经典脚本(31-40)
50个开发必备的Python经典脚本(41-50) ————————————————
最后我们放松一下眼睛