CoffeeScript-例外処理
例外(または例外イベント)は、プログラムの実行中に発生する問題です。例外が発生すると、プログラムの通常のフローが中断され、プログラム/アプリケーションが異常終了します。これは推奨されないため、これらの例外を処理する必要があります。
例外はさまざまな理由で発生する可能性があります。例外が発生するいくつかのシナリオを次に示します。
- ユーザーが無効なデータを入力しました。
- 開く必要のあるファイルが見つかりません。
CoffeeScriptの例外
CoffeeScriptsは、を使用した例外/エラー処理をサポートしています。 try catch and finallyブロック。これらのブロックの機能はJavaScriptと同じです。try ブロックは例外的なステートメントを保持します、 catch ブロックには、例外が発生したときに実行されるアクションがあり、 finally ブロックは、ステートメントを無条件に実行するために使用されます。
以下はの構文です try catch そして finally CoffeeScriptのブロック。
try
// Code to run
catch ( e )
// Code to run if an exception occurs
finally
// Code that is always executed regardless of
// an exception occurring
ザ・ try ブロックの後には、1つだけが続く必要があります catch ブロックまたは1つ finallyブロック(または両方のいずれか)。で例外が発生した場合try ブロック、例外はに配置されます e そしてその catchブロックが実行されます。オプションfinally ブロックは、try / catchの後に無条件に実行されます。
例
次の例は、CoffeeScriptでtryブロックとcatchブロックを使用した例外処理を示しています。ここでは、CoffeeScript操作で未定義のシンボルを使用しようとしていますが、try そして catchブロック。このコードを名前のファイルに保存しますException_handling.coffee
try
x = y+20
console.log "The value of x is :" +x
catch e
console.log "exception/error occurred"
console.log "The STACKTRACE for the exception/error occurred is ::"
console.log e.stack
を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。
c:\> coffee -c Exception_handling.coffee
コンパイルすると、次のJavaScriptが表示されます。
// Generated by CoffeeScript 1.10.0
(function() {
var e, error, x;
try {
x = y + 20;
console.log("The value of x is :" + x);
} catch (error) {
e = error;
console.log("exception/error occurred");
console.log("The STACKTRACE for the exception/error occurred is ::");
console.log(e.stack);
}
}).call(this);
今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。
c:\> coffee Exception_handling.coffee
実行すると、CoffeeScriptファイルは次の出力を生成します。
exception/error occurred The STACKTRACE for the exception/error occurred is ::
ReferenceError: y is not defined
at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:3:7)
at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:2:1)
at Module._compile (module.js:413:34)
at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:134:23)
at compileScript (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:224:29)
at compilePath (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:174:14)
at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:98:20)
at Object.<anonymous> (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\bin\coffee:7:41)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:139:18)
at node.js:999:3
最後にブロック
上記の例を使用して書き直すこともできます finallyブロック。そうすると、このブロックの内容はその後無条件に実行されますtry そして catch。このコードを名前のファイルに保存しますException_handling_finally.coffee
try
x = y+20
console.log "The value of x is :" +x
catch e
console.log "exception/error occurred"
console.log "The STACKTRACE for the exception/error occurred is ::"
console.log e.stack
finally
console.log "This is the statement of finally block"
を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。
c:\> coffee -c Exception_handling_finally.coffee
コンパイルすると、次のJavaScriptが表示されます。
// Generated by CoffeeScript 1.10.0
(function() {
var e, error, x;
try {
x = y + 20;
console.log("The value of x is :" + x);
} catch (error) {
e = error;
console.log("exception/error occurred");
console.log("The STACKTRACE for the exception/error occurred is ::");
console.log(e.stack);
} finally {
console.log("This is the statement of finally block");
}
}).call(this);
今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。
c:\> coffee Exception_handling_finally.coffee
実行すると、CoffeeScriptファイルは次の出力を生成します。
exception/error occurred The STACKTRACE for the exception/error occurred is ::
ReferenceError: y is not defined
at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:3:7)
at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:2:1)
at Module._compile (module.js:413:34)
at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:134:23)
at compileScript (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:224:29)
at compilePath (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:174:14)
at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:98:20)
at Object.<anonymous> (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\bin\coffee:7:41)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:139:18)
at node.js:999:3
This is the statement of finally block
スローステートメント
CoffeeScriptは、 throwステートメント。throwステートメントを使用して、組み込みの例外またはカスタマイズした例外を発生させることができます。後でこれらの例外をキャプチャして、適切なアクションを実行できます。
例
次の例は、 throwCoffeeScriptのステートメント。このコードを名前の付いたファイルに保存しますthrow_example.coffee
myFunc = ->
a = 100
b = 0
try
if b == 0
throw ("Divided by zero error.")
else
c = a / b
catch e
console.log "Error: " + e
myFunc()
を開きます command prompt 次に示すように、.coffeeファイルをコンパイルします。
c:\> coffee -c throw_example.coffee
コンパイルすると、次のJavaScriptが表示されます。
// Generated by CoffeeScript 1.10.0
(function() {
var myFunc;
myFunc = function() {
var a, b, c, e, error;
a = 100;
b = 0;
try {
if (b === 0) {
throw "Divided by zero error.";
} else {
return c = a / b;
}
} catch (error) {
e = error;
return console.log("Error: " + e);
}
};
myFunc();
}).call(this);
今、開きます command prompt もう一度、以下に示すようにCoffeeScriptファイルを実行します。
c:\> coffee throw_example.coffee
実行すると、CoffeeScriptファイルは次の出力を生成します。
Divided by zero error.