14 エラー処理  編集

Octave は,エラーや警告メッセージを表示するために,いくつかの関数を持っています。 異常な状態に遭遇したときに特別な動作をする必要のある関数を書くとき,この章で説明する関数を用いてエラーメッセージを表示すべきです。

error (template, . . . ) 編集

                   [Built-in Function]

error関数は,printfに類する関数と同じルール(Section 16.2.4 [Formatted Output]を参照)を用いて,テンプレート文字列template の制御下で,オプション引数の書式 を整えます。 生み出されるメッセージの先頭には‘error: ’が付けられ,stderrストリームに表 示されます。

errorを呼び出すことは,これ以上のコマンドを評価することなくトップレベルに制御が戻るような,Octave の内部エラー状態をセットすることにもなります。 これは,関数またはスクリプトを停止するには便利です。

もしエラーメッセージが改行文字で終わっていなければ,Octave は,エラーに先だって呼び出された全ての関数のトレースバック(呼び出し履歴)を表示します。 たとえば,以下の関数定義が与えられていたとします。

	function f () g () end
	function g () h () end
	function h () nargin == 1 || error ("nargin != 1"); end

関数fを呼び出すと,エラーの正確な位置をすぐに見つける手がかりとなるようなメッセージリストを出力します。

	f ()
	error: nargin != 1
	error: evaluating index expression near line 1, column 30
	error: evaluating binary operator `||' near line 1, column 27
	error: called from `h'
	error: called from `g'
	error: called from `f'

もしエラーメッセージが改行文字で終わっているならば,Octave はそのメッセージを表示しますが,処理をトップレベルに戻すときにはトレースバックメッセージを何も表示しなくなります。 たとえば,上の例のエラーメッセージの終端を改行に修正すると,Octave はひとつのメッセージしか表示しなくなります。

	function h () nargin == 1 || error ("nargin != 1\n"); end
	f ()
	error: nargin != 1

beep_on_error 編集

                   [Built-in Variable]

もしbeep_on_errorがゼロでないならば,Octave はエラーメッセージを表示する前に端末のベルを鳴らそうとします。 初期値は0 です。

warning (msg) 編集

                   [Built-in Function]

文字列‘warning: ’に続けて警告メッセージmsg を表示します。 警告メッセージを表示した後,Octave はコマンドの実行を続けます。 このコマンドは,ユーザに異常事態を知らせたいときに使用すべきですが,独自のプログラムが実行を継続する意味があるときに限るべきです。

usage (msg) 編集

                   [Built-in Function]

文字列‘usage: ’に続けてメッセージmsg を表示し,これ以上のコマンドを評価することなくトップレベルに制御が戻るような,Octaveの内部エラー状態をセットします。 これは,関数を停止するときに便利です。 usageが評価された後,Octaveは,使用法メッセージに先だって呼び出された全ての関数のトレースバック(呼び出し履歴)を表示します。 この関数は,引数の数が正しくなかったり,引数の型が間違った状態で関数を呼び出したときのように,関数の不適切な呼び出しから発生した問題を報告するために使用するべきです。 たとえば,Octave とともに配布されている大部分の関数は,以下のようなコードで書き始めています。

	if (nargin != 2)
		usage ("foo (a, b)");
	endif

これは適切な引数の数をチェックするためです。

lasterr () 編集

                   [Built-in Function]

lasterr (msg) 編集

                   [Built-in Function]

何も引数が無いときには,最後のエラーメッセージを返します。 1つの引数を付けると,最後のエラーメッセージをmsg にセットします。

lastwarn () 編集

                   [Built-in Function]

lastwarn (msg) 編集

                   [Built-in Function]

何も引数が無いときには,最後の警告メッセージを返します。 1 つの引数を付けると,最後の警告メッセージをmsg にセットします。

以下の一対の関数は,使いやすさに制限があり,Octave の将来のバージョンでは削除されるかもしれません。

perror (name, num) 編集

                   [Function File]

エラー番号num に対応して,関数name についてエラーメッセージを表示します。 この関数は,エラーコードを数値で返すような関数に対するエラーメッセージを便利に表示するために使用することを目的としています。

strerror (name, num) 編集

                   [Function File]

関数name について,エラー番号num に対応するエラーメッセージのテキストを返します。 この関数は,エラーコードを数値で返すような関数に対するエラーメッセージを便利に表示するた めに使用することを目的としています。