首页 > 解决方案 > 根据 .NET 应用程序中是否引发异常来设置变量

问题描述

ConsumerBuilder在我的应用程序使用的依赖包中有这个:

using var consumer = new ConsumerBuilder<byte[], byte[]>(config).SetErrorHandler(
    (consumeException, error) => throw new Exception($"KafkaTask Kafka error, Fatal:{error.IsFatal}, " +
        $"Code:{error.Code}, {error.IsBrokerError}, " +
        $"IsLocalError:{error.IsLocalError}, Reason:{error.Reason}")).Build();

我想添加一些东西,如果抛出异常,则将变量设置为 true。我怎么做?

标签: c#.netvariables

解决方案


您可以通过将多行括在花括号中来向 lambda 表达式添加多行:

var exceptionWasThrown = false;

using var consumer = new ConsumerBuilder<byte[], byte[]>(config).SetErrorHandler(
    (consumeException, error) => 
    {
        exceptionWasThrown = true;

        throw new Exception($"KafkaTask Kafka error, Fatal:{error.IsFatal}, " +
            $"Code:{error.Code}, {error.IsBrokerError}, " +
            $"IsLocalError:{error.IsLocalError}, Reason:{error.Reason}")
    }).Build();

推荐阅读