如何使用先决条件检查来停止下一行的执行或出于任何其他可能使用的原因

问题描述

就像我有一个 else if 或 try catch 语句。如果语句失败或捕获到未处理的异常,我如何停止执行特定的代码

我之前已经发布过这个问题,所以我只是重新整理一下。

如果你不希望程序在 try catch 失败时执行某行代码,你会怎么做?

        try
        {
            
            PRECIO = Convert.Todouble(TBPRECIO.Text);
            CANTIDAD = Convert.Todouble(TBCANTIDAD.Text);
            CATEGORIA = Convert.Todouble(TBCATEGORIA.Text);
            
        }



        catch
        {
            MessageBox.Show("NO PUEDE HABER ESPACIOS VACIOS");

            TBPRECIO.Focus();
        }

解决方法

我认为您所要求的一般解决方案是,您可以在 try 块之外声明一个变量,并在要检查的行执行后将其设置在 try 块内。

bool CANTIDADRead = false;
try
{
    PRECIO = Convert.ToDouble(TBPRECIO.Text);
    CANTIDAD = Convert.ToDouble(TBCANTIDAD.Text);
    CANTIDADRead = true;
    CATEGORIA = Convert.ToDouble(TBCATEGORIA.Text);      
}
catch
{
    MessageBox.Show("NO PUEDE HABER ESPACIOS VACIOS");
    TBPRECIO.Focus();
}
if(CANTIDADRead)
    //do stuff

不过,在您的特定情况下,您最好切换到 double.TryParse

    bool PRECIOREAD = double.TryParse(TBPRECIO.Text,out PRECIO);
    bool CANTIDADREAD = double.TryParse(TBCANTIDAD.Text,out CANTIDAD);
    bool CATEGORIAREAD = double.TryParse(TBCATEGORIA.Text,out CATEGORIA); 

这将尝试解析这些字符串的值并返回解析是否成功。 out 关键字意味着你传入的变量会被方法更新,但如果解析失败,它将不是正确的值。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...