私は、テキストフィールドとボタンを持つ小さな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"]
I try、throw、catchを使う方法がわからない。私はhttp://static.red-lang.org/red-system-specs.htmlのセクション10をチェックしようとしましたが、本当に理解できませんでした。
どうすれば解決できますか?ご協力いただきありがとうございます。
私たちは成功した部分( 'integer?value ...')を必要としない場合、 'case'の代わりに' if'を使用できますか? – rnso
@rnsoはい。 'case'はsuper -ifと似ています。 'エラーの場合は? foo:[整数にしよう! "Foo"] [...あなたのエラーハンドラはここに...] ' – rgchris