Bash で、例外をシミュレートする方法はありますか?
たとえば、テスト関数では、いくつかのテストステートメントがあります
test_foo_and_bar() {
expect_foo $1
expect_bar $2
}
expect_foo() {
[[ $1 != "foo" ]] && return 1
}
expect_bar() {
[[ $1 != "bar" ]] && return 1
}
さて、私が望むのは、expect_foo
失敗した場合、実行が停止して function の呼び出し元に戻ることtest_foo_and_bar
です。
そのようなことは可能ですか?私はあなたがこのようなことができることを知っています:
test_foo_and_bar() {
expect_foo $1 || return 2
expect_bar $2 || return 2
}
しかし、私は代替ソリューションに興味があります (もしあれば)。
編集
提案されたソリューションは非常に優れていますが、もう 1 つ要件があります。例外が発生した後も、クリーンアップを実行する必要があります。したがって、単に終了することはオプションではありません。
私が効果的に必要としているのは、Java で言えば、ある種のfinally
句です。