我的 try catch 错误消息没有显示

问题描述 投票:0回答:1

我正在制作一个计算器,它可以根据提供给程序的电压和电流计算电阻。当程序计算该值时,它应该将日期时间、使用的电压、使用的电流和电阻值记录到给定文件路径中的文本文件中。我的问题是 try / catch,如果给程序提供了错误的文件路径,则不会发生错误,并且程序根本不会记录任何内容,因为它没有正确的文件路径。

所以我想让程序显示消息框错误消息并显示 ex.Message,然后您应该能够为程序提供正确的文件路径,然后继续。

我尝试将 try / catch 放在 if / else 的外部和内部,但程序做了同样的事情,它不显示错误消息。

(如果代码有拼写错误,它们可能是我将所使用的名称从芬兰语翻译成英语的结果)

namespace Resistance calculator
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        
        public MainWindow()
        {
            InitializeComponent();
            txtLogPath.Text = "C:\\Users\\MyUser\\Documents\\Log file.txt";
        }

        private void txtVoltage_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            txtVoltage.Clear();
        }

        private void txtCurrent_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            txtCurrent.Clear();
        }
        private void txtLogPath_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            txtLogPath.Clear();
        }

        private void btnCalculate_Click(object sender, RoutedEventArgs e)
        {
            if (double.TryParse(txtVoltage.Text, out double voltagevalue) &&
                double.TryParse(txtCurrent.Text, out double currentvalue))
            {
                double Result = voltagevalue / currentvalue;
                lblAnswer.Content = Result.ToString();

                try
                {
                    string logLine = DateTime.Now.ToString() + ", " + txtVoltage.Text + ", " + txtCurrent.Text + ", " + lblAnswer.Content;
                    System.IO.File.AppendAllText(txtLogPath.Text, logLine + "\n");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: " + ex.Message + "Incorrect filepath!");
                }
            }
            else
            {
                MessageBox.Show("Error occured, please write numbers only.");
            }

            
        }


    }
    
}
c# xaml if-statement try-catch
1个回答
0
投票

所以你隐含地说,当给出正确的文件路径时,try块正在被执行,并且只有当期望catch块被执行时才会出现问题,对吗?您是否尝试过在finally块中记录某些内容,以检查它是否以任何方式执行?

© www.soinside.com 2019 - 2024. All rights reserved.