diff --git a/JavaToCSharpCli/Program.cs b/JavaToCSharpCli/Program.cs index d74a0fc..bf02bec 100644 --- a/JavaToCSharpCli/Program.cs +++ b/JavaToCSharpCli/Program.cs @@ -273,7 +273,24 @@ private static void ConvertToCSharpFile(FileSystemInfo inputFile, FileSystemInfo { string javaText = File.ReadAllText(inputFile.FullName); - options.WarningEncountered += (_, eventArgs) => + options.WarningEncountered += WarningEncountered; + + try + { + string? parsed = JavaToCSharpConverter.ConvertText(javaText, options); + OutputFileOrPrint(outputFile?.FullName, parsed ?? string.Empty); + } + finally + { + options.WarningEncountered -= WarningEncountered; + } + + if (outputFile != null) + { + _logger.LogInformation("{filePath} converted!", inputFile.Name); + } + + void WarningEncountered(object? sender, ConversionWarningEventArgs eventArgs) { if (outputFile != null) { @@ -283,14 +300,6 @@ private static void ConvertToCSharpFile(FileSystemInfo inputFile, FileSystemInfo OutputFileOrPrint(outputFile != null ? Path.ChangeExtension(outputFile.FullName, ".warning") : null, eventArgs.Message + Environment.NewLine); - }; - - string? parsed = JavaToCSharpConverter.ConvertText(javaText, options); - OutputFileOrPrint(outputFile?.FullName, parsed ?? string.Empty); - - if (outputFile != null) - { - _logger.LogInformation("{filePath} converted!", inputFile.Name); } } catch (Exception ex)