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.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour