+test("A","aaa");
+test("A","bbb");
+test("A","ccc");
+test("B","ddd");
+test("B","eee");
,prtn("test1"),raise("userError1","messagestring"),prtn("test"),catch($x),debug($x);

+mytest($k)
	,test($k,$a)
	,prtn($a)
	,raise("userError2",$a)
	,catch({ :class=>"no more money", :message => $y, :at => $z, :in => $})
		,prt("No money!!")
	,catch({ :class=>"userError2", :message => $y, :at => $z, :in => $})
		,debug($a,$y,$z)
		,test("B",$c)
		,prtn($c)
		,fail
;
+mytest($k),prt("2nd:"$k);
,prtn("test2"),mytest("A");

+mytest2($k)
	,test($k,$a)
	,prtn($a)
	,raise("userError2",$a)
	,catch({ :class=>"no more money", :message => $y, :at => $z, :in => $})
		,prt("No money!!")
	,catch({ :class=>"userError2", :message => $y, :at => $z, :in => $})
		,debug($a,$y,$z)
		,test("B",$c)
		,prtn($c)
		,raise("userError2",$c)	# バックトラックの起動（キャッチできない）
;
+mytest2($k),prtn("2nd:"$k);
,prtn("test3"),mytest2("A");
