when (Référence C#)
Vous pouvez utiliser le mot clé contextuel when
pour spécifier une condition de filtre dans les contextes suivant :
- Dans une clause catch d’une instruction
try-catch
outry-catch-finally
. - En tant que gardien de cas dans l’instruction
switch
. - En tant que gardien de cas dans l’expression
switch
.
when
dans une clause catch
Le mot clé when
peut être utilisé dans une clause catch pour spécifier une condition qui doit avoir la valeur « true » sur le gestionnaire pour qu’une exception spécifique s’exécute. Sa syntaxe est la suivante :
catch (ExceptionType [e]) when (expr)
où expr est une expression qui prend une valeur booléenne. Si la valeur retournée est true
, le gestionnaire de l’exception est exécuté ; si la valeur retournée est false
, il n’est pas exécuté.
L’exemple suivant utilise le mot clé when
afin d’exécuter conditionnellement des gestionnaires pour une exception HttpRequestException selon le texte du message d’exception.
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;
}
}
}
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour