我有一个带有文本字段和按钮的小型GUI应用程序。该按钮会触发一个试图从文本字段中读取数字的函数。如果文本字段为空白或具有非数字文本,则会引发异常。红色语言的尝试/捕获异常
我试图抓住错误,如果文本字段不具有价值或者具有文本值,而不是一个有效的数字:
calc: does [
try [x: to integer! num_field/text]
catch [ print "Could not get number"]
print "Number read"
]
也是继不起作用:
calc: does [
try [x: to integer! num_field/text]
throw 123
print "Number read"
]
catch 123 [ print "Could not get number"]
我我不确定如何使用try,throw和catch在这里。我试图检查http://static.red-lang.org/red-system-specs.html的第10部分,但无法真正理解。
这怎么解决?谢谢你的帮助。
如果我们不需要成功的部分('整数?值...'),我们可以使用'if'而不是'case'吗? – rnso
@rnso是的。 'case'就像一个超级'if'。 '如果错误? foo:尝试[以整数! “Foo”] [...你的错误处理程序在这里...]' – rgchris