首页 > 编程语言 >when(C# 参考)

when(C# 参考)

时间:2023-12-15 19:36:15浏览次数:78  
标签:return 参考 C# when HttpRequestException catch Message

when(C# 参考)

 

本文内容

  1. catch 子句中的 when
  2. 请参阅

使用上下文关键字 when 在以下上下文中指定筛选条件:

catch 子句中的 when

可在 catch 子句中使用 when 关键字来指定一个条件,此条件必须为 true,才能执行特定异常的处理程序。 语法为:

C#
catch (ExceptionType [e]) when (expr)

其中,expr 是一个表达式,其计算结果为布尔值。 如果该表达式返回 true,则执行异常处理程序;如果返回 false,则不执行。

以下示例使用 when 关键字有条件地执行 HttpRequestException 的处理程序,具体取决于异常消息的文本内容。

C#
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        Console.WriteLine(MakeRequest().Result);
    }

    public static async Task<string> MakeRequest()
    {
        var client = new HttpClient();
        var streamTask = client.GetStringAsync("https://localHost:10000");
        try
        {
            var responseText = await streamTask;
            return responseText;
        }
        catch (HttpRequestException e) when (e.Message.Contains("301"))
        {
            return "Site Moved";
        }
        catch (HttpRequestException e) when (e.Message.Contains("404"))
        {
            return "Page Not Found";
        }
        catch (HttpRequestException e)
        {
            return e.Message;
        }
    }
}

请参阅

标签:return,参考,C#,when,HttpRequestException,catch,Message
From: https://www.cnblogs.com/sexintercourse/p/17904061.html

相关文章

  • where(泛型类型约束)(C# 参考)
    where(泛型类型约束)(C#参考)项目2023/04/0714个参与者反馈 本文内容C#语言规范另请参阅泛型定义中的 where 子句指定对用作泛型类型、方法、委托或本地函数中类型参数的参数类型的约束。约束可指定接口、基类或要求泛型类型为引用、值或非托管类型。约束声......
  • 解决方案 | pywintypes.com_error: (-2147221005, '无效的类字符串', None, None) --P
     1背景importpythoncomimportwin32com.clientimportmathwincad=win32com.client.Dispatch("AutoCAD.Application")#强制打开cad,该句发生报错信息doc=wincad.ActiveDocumentdoc.Utility.Prompt("Hello!Autocadfrompywin32com.\n")msp=doc.Mode......
  • SpringBoot使用Async注解实现异步线程
    1、启动类增加@EnableAsync注解2、yml增加配置spring:task:execution:pool:max-size:8core-size:8keep-alive:60queue-capacity:1000thread-name-prefix:Asnyc-task-calc-3、编写配置类AsyncTaskConfigimp......
  • 138. Copy List with Random Pointer
    题目Alinkedlistisgivensuchthateachnodecontainsanadditionalrandompointerwhichcouldpointtoanynodeinthelistornull.Returna deepcopy ofthelist.TheLinkedListisrepresentedintheinput/outputasalistof n nodes.Eachnodeisr......
  • 无涯教程-Java - int compareTo(String anotherString)函数
    此方法按字典顺序比较两个字符串。intcompareTo-语法intcompareTo(StringanotherString)这是参数的详细信息-anotherString  - 要比较的字符串。intcompareTo-返回值如果两个字符串相等则值为0,如果大于则>0,小于则<0。intcompareTo-示例publicclassTes......
  • ABC332G Not Too Many Balls 题解
    第\(i\)种球有\(a_i\)个,共\(n\)种。第\(i\)种箱子最多共装\(b_i\)个球。共\(m\)种。第\(i\)种球在第\(j\)种箱子里至多放\(ij\)个。问所有箱子放的球数最多是多少。\(1\leqn\leq500,1\leqm\leq5e5,0\leqa_i,b_i\leq1e12\)。很容易建出网络流模型。......
  • 解决方案 | AutoCAD二次开发的ProgID一览表(AutoCAD2000 ~ AutoCAD2024)
    1图片版本    2文字版本AutoCAD产品名版本号ProgIDAutoCAD2004R16AutoCAD.Application.16AutoCAD2005R16.1AutoCAD.Application.16.1AutoCAD2006R16.2AutoCAD.Application.16.2AutoCAD2007R17AutoCAD.Appl......
  • [Codeforces] CF1740D Knowledge Cards
    CF1740DKnowledgeCards题意有一个\(n\timesm\)的棋盘。现在\((1,1)\)中有一个栈,你可以按照一定的顺序进行出栈操作,每次都可以移动一个卡片到一个相邻的空白位置,但是卡片不能重合。问,能否通过若干次操作,将\((1,1)\)中全部的卡片移动到\((n,m)\)的栈中并使得这个栈按照从栈......
  • 汉源高科8路电话光端机 光纤传输8路电话 8路光纤PCM电话光端机
    8路电话光端机HY-8P是汉源高科(北京)科技有限公司采用自主知识产权的大规模集成电路,应用时分复用技术,将以太网信号和电话信号混合编码后在一对光纤上传输。实现热线电话业务传输,传输通道为光传输通道。该机采用桌面式设计,集成度高,体积小,功耗低,工作可靠,安装使用方便。主要功能与特点1:......
  • 【博主新书】《OpenCV应用开发:入门、进阶与工程化实践》
    写作初心OpenCV作为开源的计算机视觉框架已经有超过20年的发展历程,OpenCV4是OpenCV目前为止最重要的里程碑版本。OpenCV4不仅包含了传统图像处理、图像分析、特征提取等模块的各种主流算法算子,还包含了深度学习模型部署与加速支持模块,兼容支持多种硬件与操作系统。OpenCV开发的应用......