Published on InterSystems Developer Community (https://community.intersystems.com)

ホーム > ループ中にエラーが発生してもそのままループを継続したい

質問
Taro Yamada · 2021年1月28日

ループ中にエラーが発生してもそのままループを継続したい

皆さんこんにちは。

以下のメソッドでは日付の入った配列を受け取り、すべてのYYYY-MM-DD形式の
日付を$horologに変換しているのですが、たまに日付が古すぎるものが入っており
<VALUE OUT OF RANGE>エラーが発生して途中で止まってしまいます。
エラー時にエラーメッセージを代入してそのまま継続できる方法はないでしょうか?

 

プログラムは以下の通りです。

Class DC.Sample Extends %RegisteredObject [ Language = objectscript ]
{ 
/// 配列に入っているYYYY-MM-DD形式の日付を$horologに変換する
ClassMethod TransDate(array) As %Status
{
set key="" for {
   set key=$order(array(key),1,data)
   quit:key=""

   set array(key)=$zdh(data,3)
}
quit $$$OK
} 
}

よろしくお願いいたします。

#ObjectScript #InterSystems IRIS
Product version: IRIS 2020.1
$ZV: IRIS for UNIX (Ubuntu Server LTS for x86-64) 2020.1 (Build 215U) Mon Mar 30 2020 20:26:47 EDT

ソースURL:https://jp.community.intersystems.com/post/%E3%83%AB%E3%83%BC%E3%83%97%E4%B8%AD%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%82%82%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E3%83%AB%E3%83%BC%E3%83%97%E3%82%92%E7%B6%99%E7%B6%9A%E3%81%97%E3%81%9F%E3%81%84