when(C# 참조)
when
상황별 키워드를 사용하여 다음 컨텍스트에서 필터 조건을 지정합니다.
catch 절의 when
when
키워드는 특정 예외를 실행하기 위해 처리기에 대해 true여야 하는 조건을 지정하기 위해 catch 절에서 사용할 수 있습니다. 사용되는 구문은 다음과 같습니다.
catch (ExceptionType [e]) when (expr)
여기서 expr은 부울 값으로 계산되는 식입니다. true
가 반환되면 예외 처리기가 실행되고, false
가 반환되면 실행되지 않습니다.
다음 예제는 when
키워드를 사용하여 예외 메시지의 텍스트에 따라 HttpRequestException에 대한 처리기를 조건부로 실행합니다.
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;
}
}
}
참고 항목
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET