例外監視文でエラー情報が得られない

投稿者:碁盤鮫 投稿日:2020/08/03(Mon) 18:42:01 No.1938

https://docs.utopiat.net/rdr/reference/syntax/trycatch.html
https://docs.utopiat.net/rdr/reference/core/errorinfo.htm
などにある例では、

  エラーのメッセージ

といった式で例外の詳細が得られるような形になっていますが、実際にはうまくいかないようです。

(テストプログラム)
ーーーーーーーーーーーーーーーーーーーー
例外監視
  1÷0を報告
発生した場合
  「<発生した場合>節開始」と報告
  Kは、エラーから型情報を取得したもの
  「エラーはエラー情報のインスタンス? [Kがエラー情報]」を報告
  「<発生した場合>節終了」と報告
監視終わり
ーーーーーーーーーーーーーーーーーーーー

(「スミレ畑」での実行結果)
ーーーーーーーーーーーーーーーーーーーー
<発生した場合>節開始
エラーはエラー情報のインスタンス? ×
<発生した場合>節終了
ーーーーーーーーーーーーーーーーーーーー

修正しました

投稿者:ゆうと 投稿日:2020/08/08(Sat) 14:10:21 No.1948

例外監視の「エラー」特殊変数の件、不具合でした。
マニュアルの記述には変更ありません。
スミレ畑,プロデル共に1.7.1010で修正反映済みです。

確認しました/マニュアル外のもの

投稿者:碁盤鮫 投稿日:2020/08/10(Mon) 04:51:16 No.1954

ありがとうございました。

ところでそういえば、「エラー情報」型では、マニュアルにない
「ファイル」「行番号」
という設定項目も有効なようですが、こういったものは非公式の仕様というような扱いになるのでしょうか。

新発見:繰り返し中の例外監視でエラーが無

投稿者:碁盤鮫 投稿日:2020/08/14(Fri) 05:12:56 No.1957

(自動テスト用の手順を作ろうとして気づきました。)

繰り返し文の中に置いた例外監視文では、エラーが発生しても「エラー」特殊変数が値をもたないようです。

ーーーーーーーーーーーーーーーーーーーー テストプログラム
「例外監視中の繰り返し中のエラー」と報告
例外監視
  5回繰り返す
    1÷0を報告
  繰り返し終わり
発生した場合
  「エラーは無でない? [エラーが無でない]」と報告
監視終わり

「繰り返し中の例外監視中のエラー」と報告
5回繰り返す
  例外監視
    1÷0を報告
  発生した場合
    「エラーは無でない? [エラーが無でない]」と報告
  監視終わり
繰り返し終わり
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーーーーーーーーーーーー 「スミレ畑」(Sumire 1.7.1010)での実行結果
例外監視中の繰り返し中のエラー
エラーは無でない? ○
繰り返し中の例外監視中のエラー
エラーは無でない? ×
エラーは無でない? ×
エラーは無でない? ×
エラーは無でない? ×
エラーは無でない? ×
ーーーーーーーーーーーーーーーーーーーー

[追記] スミレのバージョン名を表示しました。

参考:迂回方法

投稿者:碁盤鮫 投稿日:2020/08/15(Sat) 05:37:29 No.1959

ふと思いつきましたので補足を。

例外監視文をブロックに囲うなどすれば、繰り返し文の中でも「エラー」の値が得られるようです。

ーーーーーーーーーーーーーーーーーーーー
「繰り返し中の匿名手順実行中の例外監視中のエラー」と報告
5回繰り返す
  『
    例外監視
      1÷0を報告
    発生した場合
      「エラーは無でない? [エラーが無でない]」と報告
    監視終わり
  』 //を実行する
繰り返し終わり

「繰り返し中の手順呼び出し中の例外監視中のエラー」と報告
5回繰り返す
  例外監視をテストする
繰り返し終わり

例外監視をテストする手順
  例外監視
    1÷0を報告
  発生した場合
    「エラーは無でない? [エラーが無でない]」と報告
  監視終わり
終わり
ーーーーーーーーーーーーーーーーーーーー

解消を確認しました

投稿者:碁盤鮫 投稿日:2020/08/17(Mon) 03:26:22 No.1964

ありがとうございました。

ーーーーーーーーーー 「スミレ畑」(Sumire 1.7.1014)での実行結果
例外監視中の繰り返し中のエラー
エラーは無でない? ○
繰り返し中の例外監視中のエラー
エラーは無でない? ○
エラーは無でない? ○
エラーは無でない? ○
エラーは無でない? ○
エラーは無でない? ○
ーーーーーーーーーーーーーーーーーーーー

(Sumire 1.7.1016)エラーが無

投稿者:碁盤鮫 投稿日:2020/08/28(Fri) 16:29:22 No.1979

「例外監視文の連続」の問題を追試していたら「エラーのメッセージ」が取れなくなっていて、「エラー」が(今度は無条件に)「無」になっていると気づきました。

ーーーーーーーーーー サンプルプログラム
例外監視
  1÷0を報告
発生した場合
  「エラーは無でない? [エラーが無でない]」と報告
監視終わり
ーーーーーーーーーーーーーーーーーーーー

ーーーーーーーーーー スミレ畑(Sumire 1.7.1016)での実行結果
エラーは無でない? ×
ーーーーーーーーーーーーーーーーーーーー

[追記] 手順宣言文の中では可、単に『』で囲んだ中では不可でした。

▲ページの先頭へ

- WebForum -