0

学校の宿題用に Javascript で電卓を作成しており、関数 eval() を使用しています。はい、わかっています。eval が悪意を持っていることはわかっていますが、私はこれを既に確保しているので、悪用する方法はありません。

eval は、テキスト ボックスの値を回答に変換し、別のテキスト ボックスに表示します。ただし、構文が間違っている場合 (たとえば、ユーザーが「1++2」と入力した場合)、スクリプトが何らかのエラーを表示することを希望します。しかし、入力が無効な場合、 eval() は消えるようです。値もエラーも返されません (クロムは「Uncaught Syntaxerror」で説明しようとしますが、それは私には役に立ちません)、ユーザーが構文を台無しにした場合にスクリプトに何をすべきかを説明する方法がありません。

TL;DR: eval() に無効な入力がある場合、スクリプトにエラー メッセージを表示させるにはどうすればよいですか?

前もって感謝します

4

2 に答える 2

3

これthrowは例外を (発生させ)、それをcatch(処理) して、好きなように処理できます。

var s;
try
    { s = eval('1++2'); }
catch(e)
    { s = e; }
// now s is either the result, or the exception-info
于 2012-11-02T23:50:35.000 に答える
1

エラーが発生したことをユーザーに適切に示すには、try catch ブロックを使用する必要があります。

function evalJS(JsCode) 
{ 
    try 
    { 
        eval(JsCode); 
    } 
    catch(e) 
    { 
        alert('The string ' + JsCode + ' contained incorrect JS syntax.'); 
    } 
} 

evalJS('bogus code'); 
于 2012-11-02T23:51:48.107 に答える