我有一個帶有文本字段和按鈕的小型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