2345电视剧网站免费,潍坊网站建设团队,网站开发编辑器,网页版梦幻西游能交易吗在实际应用中#xff0c;比如涉及文件读写、网络通信时#xff0c;会因为文件不存在、权限不够、网络异常等原因引发异常#xff0c;或者对数据库连接、查询、更新等操作#xff0c;会因为连接超时、语法错误、唯一约束冲突等引发异常。
看过去的代码#xff0c;当进行上…在实际应用中比如涉及文件读写、网络通信时会因为文件不存在、权限不够、网络异常等原因引发异常或者对数据库连接、查询、更新等操作会因为连接超时、语法错误、唯一约束冲突等引发异常。
看过去的代码当进行上面的这些操作大家就通常会发现try-catch语句的身影。
不错。在这些情况下我们就可以应用try-catch语句来捕捉异常了。
1、基本语法
try
{// 可能会引发异常的代码
}
catch (ExceptionType1 ex1)
{// 处理ExceptionType1类型的异常
}
catch (ExceptionType2 ex2)
{// 处理ExceptionType2类型的异常
}
finally
{// 可选的finally块无论是否发生异常都会执行
}这就是它的完整语法。try放置你的处理代码当发生异常时就执行cath语句块假如有finally语句块即使发生异常也执行。
2、常见用法
1、捕捉特定异常
try
{int[] numbers { 1, 2, 3 4 };Console.WriteLine(numbers[5]); // 数组越界异常
}
catch (IndexOutOfRangeException ex)
{Console.WriteLine(发生了数组越界异常 ex.Message);
}
具体特定的异常常见的有
DivideByZeroException当在代码中进行除法运算时如果除数为零将引发此异常。IndexOutOfRangeException索引超出范围的异常当尝试访问数组或集合中不存在的索引位置时将引发此异常。FileNotFoundException文件未找到的异常当尝试打开或操作不存在的文件时将引发此异常。IOException输入/输出操作异常用于捕获各种与输入/输出相关的异常如文件操作、网络通信等。SqlException与数据库操作相关的异常在进行数据库连接、查询、更新等操作时可能会引发此异常。FormatException格式化异常当尝试将字符串转换为其他类型时如果字符串的格式不符合要求将引发此异常。ArgumentNullException参数为空异常当传递给方法或函数的参数为null时将引发此异常。InvalidOperationException无效操作异常当进行了不符合当前对象状态或上下文的操作时将引发此异常。NotSupportedException不支持的操作异常当尝试执行不受支持的操作时将引发此异常。UnauthorizedAccessException未授权访问异常当尝试访问未授权的资源或执行未授权的操作时将引发此异常。
2、处理多个异常类型
try
{int result Divide(10, 0); // 除以0的异常Console.WriteLine(结果 result);
}
catch (DivideByZeroException ex)
{Console.WriteLine(除以0异常 ex.Message);
}
catch (ArithmeticException ex)
{Console.WriteLine(算术异常 ex.Message);
}3、使用finally块
FileStream file null;
try
{file new FileStream(file.txt, FileMode.Open);// 使用文件流进行操作
}
catch (IOException ex)
{Console.WriteLine(发生了IO异常 ex.Message);
}
finally
{// 确保文件流被关闭file?.Close();
}
4、抛出异常可参考C#异常处理-throw语句-CSDN博客
5、使用异常过滤器我们是可以使用when关键字进行异常筛选的。
try
{int result Divide(10, 0);Console.WriteLine(结果 result);
}
catch (DivideByZeroException ex) when (ex.Message 除数不能为0)
{Console.WriteLine(除以0异常 ex.Message);
}
catch (DivideByZeroException ex)
{Console.WriteLine(其他除以0异常 ex.Message);
}