SystemExceptionは、Cmm処理系がエラーに準じたトラブル状況を投げる ための例外クラスです。Cmm処理系は、このクラスの例外を直接投げることは なく、そのサブクラスを投げます。Cmmの仕様で決まっているSystemExceptionクラスのサブクラスは、
例外が投げられるときは、通常の処理はそこで中断されます。try-catch式で例外インスタンスを補足するようになっていない場合は、そこ でプログラムの実行が中断されます。
SystemExceptionクラスは、
class SystemException : Exception {
public pos ;
method New (mes) : (mes) ;
}
という定義になっています。posは、処理系がエラー発生個所の位置情報を格 納するためのエリアです。
インタープリタで、例外発生位置の情報を格納して、例外を投げることを想定 しています。プログラムで例外が補足されることがなく、処理系がプログラム の実行を中止する場合に、このposを利用して発生位置を知らせることができ ます。
SystemExceptionのサブクラスは、現在のところ上記の3つしか定義され ていませんが、これからの仕様変更によって追加される可能性があります。
なお、SystemExceptionクラスのサブクラスは、処理系実行時に、そのインス タンスを下記の名前でインスタンスを準備しておきます。確実に例外を投げら れることを保証するための措置です。