MATLAB - Permitiendo solo entradas numéricas usando el manejo de excepciones [cerrado]

1

Estoy tratando de manejar las excepciones con gracia, de modo que cuando un usuario ingresa un carácter, cuando se espera un número, se le notifique con una advertencia / mensaje personalizado.

Sé que el intento, captura tiene la siguiente sintaxis:

try
   statements
catch exception
   statements
end

He estado intentando algo como esto, en vano:

number = input('Enter number'); 
try
    assert(isnumeric(number));
catch ME
    warning('NOT A NUMBER');
end

No entiendo por qué falla el código anterior, ya que afirmar si es falso, muestra el mensaje de error 'Error de aserción'.

Sé que usar try and catch es un poco un enfoque de martillo, pero me gustaría entender cómo implementar la funcionalidad anterior. Cualquier consejo sería apreciado.

    
pregunta Rrz0

1 respuesta

2

porque assert requiere un mensaje de usuario cuando se produce la afirmación ENTONCES el try / catch funcionará

Quieres algo como esto:

a = 'a';
try
    assert(isnumeric(a),'Not a number AAAA');

catch foo
    warning('Not a number');
end
1+1

Como puede ver, el mensaje de confirmación se captura y se muestra la ADVERTENCIA del usuario.

Alternativamente, puedes usar una función que fallará en un no-número para eliminar la necesidad de afirmar.

a = 'a';
try
    mustBeNumeric(a)

catch foo
    warning('Not a number');
end
1+1
    
respondido por el JonRB

Lea otras preguntas en las etiquetas