エラーのタイプ のバックアップソース(No.4)

#contents

//**エラーが出たら [#deaf9871]

//&ref{error003_expected_c.png};

**エラーの種類とその原因 [#icdd5f04]
代表的なエラーのタイプを、いくつか紹介します。

***Script error: there is no function named "xxx" [#bfbf63be]
-エラーメッセージ~
&ref{error001_no_function_name.png};

-意味~
スクリプトエラー: "xxx"という名前の関数は存在しません。((xxxは、関数名。))

-スクリプト例
 MesageClip("Hello World!")
 return last

-原因~
関数(フィルタ)の名前が間違っている、または、存在しない関数を呼び出そうとしたものと考えられます。上の例では、本来、Me&color(red){ss};ageClipと書くべきところを、Me&color(blue){s};ageClipと、sを1つ抜けているのが、その原因です。

***Script error: Invalid arguments to function "xxx" [#je34a56d]
-エラーメッセージ~
&ref{error002_invalid_arguments.png};

-意味~
スクリプトエラー: 関数"xxx"に不正な引数。

-スクリプト例
 MessageClip("Hello World!", true)
 return last

-原因~
引数に誤りがあるものと考えられます(変数型が間違っているなど)。この場合、MessageClipの2つ目の引数はint型であるにも関わらず、bool型のtrueを記述していることが原因です。MessageClipの書式については、MessageClipのページを参照。

***Script error: expected a , or ) [#td2f60cf]
-エラーメッセージ~
&ref{error003_expected_c.png};

-意味~
スクリプトエラー: ,(コンマ)、または、)(右丸括弧)を予期した。

-スクリプト例
 MessageClip("Hello World!"
 return last

-原因~
引数の区切りに使用するコンマ、または関数の最後を示す右丸括弧が抜けています。上の例では、1行目の最後に右丸括弧がないことが、エラーの原因です。

***The script's return value was not a video clip [#u3199c22]
-エラーメッセージ~
&ref{error004_not_clip.png};

-意味~
スクリプトの戻り値が、ビデオクリップではありませんでした。

-スクリプト例
 clip = MessageClip("Hello World!")
 return last

-原因~
AviSynthでは、スクリプトの戻り値は、つねにクリップでなければなりません。上の例の場合、1行目のMessageClipで生成されたクリップは変数clipに割り当てられているため、2行目で戻り値として指定されている変数last((lastは、変数の指定がない場合に、最後に処理したクリップに対して割り当てられる特別な変数。))が存在しないことが原因です。

***I don't know what "xxx" means [#of475bd9]
-エラーメッセージ~
&ref{error005_what_xxx_means.png};

-意味~
私は、"xxx"が何を意味するのか知りません。

-スクリプト例
 MessageClip("Hello World!")
 return clip

-原因~
あらかじめ宣言されていない変数を使用した場合などに発生するエラーです。上の例では、変数clipを宣言している行がないために、2行目のリターン文でエラーが発生します。ちなみに、1行目で生成されたクリップには、特別な変数lastが割り当てられています。

***Splice: Frame sizes don't match [#g47736d9]
-エラーメッセージ~
&ref{error006_sizes_dont_match.png};

-意味~
[[Splice]]: フレームのサイズがマッチしません。

-スクリプト例
 c1 = ColorBars(320, 240)
 c2 = ColorBars(480, 480)
 return c1 + c2

-原因~
AviSynthでは、[[Splice]]フィルタ([[UnalignedSplice>Splice]]か[[AlignedSplice>Splice]])や演算子の+(+か++)を使って複数のクリップを連結することができますが、大きさの異なるクリップをつなぎ合わせることはできません。上の例では、c1とc2の大きさが異なっているために、エラーが発生します。

***Splice: Video formats don't match [#p8f55330]
-エラーメッセージ~
&ref{error007_format_dont_match.png};

-意味~
[[Splice]]: ビデオのフォーマットがマッチしません。

-スクリプト例
 c1 = ColorBars(320, 240)
 c2 = ConvertToYUY2(c1)
 return c1 + c2

-原因~
AviSynthでは、色空間のフォーマットが異なるクリップを連結することはできません。上の例では、c1の色空間がRGB32であるのに対し(ColorBarsフィルタの仕様)、c2は[[Convert]]フィルタでYUY2に変換されています。このため、2つのクリップを連結しようとすると(3行目のリターン文)、エラーが発生します。

//***Plugin xxx.dll is not an AviSynth *** plugin.
//-エラーメッセージ~
//&ref{error008_not_avs25_plugin.png};
//
//-意味~
//
//-スクリプト例
//
//-原因~

//***LoadPlugin: unable to load "xxx.dll"
//-エラーメッセージ~
//&ref{error009_unable_to_load_plugin.png};
//
//-意味~
//
//-スクリプト例
//
//-原因~

//***xxx: Supports *** color format(s) only
//-エラーメッセージ~
//&ref{error010_color_format.png};
//
//-意味~
//
//-スクリプト例
//
//-原因~

//***
//-エラーメッセージ~
//&ref{error.png};
//
//-意味~
//
//-スクリプト例
//
//-原因~
//