• 締切済み

プログラムで論理エラーがあったので、そこでスクリプトを止めたいのですが

プログラムで論理エラーがあったので、そこでスクリプトを止めたいのですが、 Javascriptでは exit;というものが無いため、処理を止めることができません。 スクリプトを止める一番スマートな方法が知りたいです。 if (a == 1) { alert("通過"); // ここでスクリプトを止めたい。 } また、tryを使うと、catchでエラー表示して、そこで止めたい場合もあるのですが こちらもスクリプトを止める良い方法を探しています。 try { ... } catch (e) { alert("エラーです。"); // ここで止めたい。 }

みんなの回答

  • think49
  • ベストアンサー率59% (285/482)
回答No.4

スクリプトを止めたい理由によって回答が変わってくると思います。 もし、それがデバッグ目的ならブレークポイントを設定してみてはどうでしょうか? --- var a = 1; if (a == 1) {  alert("通過");  debbuger; // ブレークポイント } --- Google Chrome版Firebug:デベロッパーツール取扱説明書:第1回 詳説:デベロッパーツールの使い方|gihyo.jp … 技術評論社 http://gihyo.jp/dev/feature/01/devtools/0001?page=3 これはGoogle Chromeの例ですが、他の開発者ツールにもブレークポイントを設定する機能はあったと思います。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

お勧めはしませんが、同じ構造体から処理するためにdo~while処理をするとか <script> do{ alert(1); break; alert(2); }while(false); </script> test

noname#119810
noname#119810
回答No.2

returnかbreakでできる筈。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

javascriptにexit命令はありませんね。  ループから抜けるならbreakってのがありますが。 function()なら、return false;で終了して、呼び出し元に かえせますけどね。 やはり、ぜーんぶ の全体を try{}にして 抜けたいところで、throw new Error("MyError"); して、 catch(e){}で、何もしないしか手が無いかと...。

関連するQ&A

  • JSP での exit? (スクリプトからの抜け方)

    現在、Linux 上の JRun の評価をしているのですが、JSP の動きで悩んでいる部分があります。 PHP や、perl などでは、 exit; とすれば、そこで処理を終えてスクリプトを抜けることができますが、JSP ではどういった方法で処理を終えればよいのでしょう? System.exit(1); では、JRun の対象サーバごと(!) exit してしまいますし、いきなり return; を書くと、抜けることができたのですが、 try {} catch (){} では、機能してくれません。。。 みなさん、 if (flag){ exit(1); } のような処理はどうされているのでしょう?

    • ベストアンサー
    • Java
  • JavaScriptの論理演算子について

    JavaScriptの論理演算子について質問です。 「alert(e.target||e.srcElement);」の結果がtrue かfalseではなくて「object HTMLHtmlElement」となるのは何故なのでしょうか? JavaScriptでは"||"は論理演算子ではないのでしょうか? ----------------------------------------------------------------------- <body> <a id="id1">Textarea</a> <script> (function () {   var i = document.getElementById ("id1");   document.addEventListener("dblclick", addEL, false);   function addEL (e) { alert(e.target||e.srcElement);   } }) (); </script> </body>

  • プログラム終了方法

    こんにちは。プログラム終了方法についてお教え下さい。 下記のような処理を書いています。 if(A!=B)の場合、処理を抜けてプログラムを終了させたいと思っています。 下記のコードだとテキストボックスにエラー表示をさせた後に、プログラムを終了させたいです。 ただ、現状だと~~~処理3、処理4が実行されてしまいます。 どのようにすれば、if(A!=B)でテキストボックスにエラーを出力した後にプログラムを終了できるでしょうか? gotoを使用し、真ん中の処理を飛ばす方法しか有りませんでしょうか? よろしくお願いします。 try{ ~~~処理1 ~~~処理2 if(A!=B) { textbox.text = "エラー"; //goto endfinish; } ~~~処理3 ~~~処理4 } catch { textbox.text = "エラー"; } //endfinish:;

  • 「')'がありません」とスクリプトエラー

    前に作ったjavascript(現在別の箇所で活用中)を、 今回つくってる別のページに再利用しようとしたら、 「')'がありません」とスクリプトエラーになってしまいます。 いろいろコメント化したりして切り分けたところ、以下の何かが いけないようです。 「)」がないといわれても、以下のいったい何がいけないのか見当もつかないですが、 お心当たりのアドバイスがありましたら是非お願いします。 function nmck01() { var str = document.query.capacity_more.value; if( str.match( /[^0-9.]+/ ) ) { alert("不正な値がみつかりました。\n正数以外は入力できません。"); return 1; } return 0; }

  • IEのエラー(スクリプトに時間がかかりアラーとがでる)回避方法はありますか?

    大変困っていますので、回答をよろしくお願いします。 外部JavaScriptファイルを読み込んで、繰り返し処理を行うプログラムを組みましたが、以下のエラーが出てしまいます。 「このページのスクリプトがInternet Explorerの実行速度を遅くしています。スクリプトを実行しつづけると、コンピュータが反応しなくなる可能性があります。スクリプトを中断しますか?」 このエラーでいいえとクリックすると数秒で正常に結果が表示されます。 このエラーを表示させない方法などありますでしょうか? それともプログラム自体時間がかからないように変更すべきなのでしょうか?ちなみにこのエラーはどれくらいででるものなのでしょうか? 教えていただけると大変うれしいです。 よろしくお願いします。

  • if文の書き方

    プログラム初心者です if文の処理速度が速いのは一般的に考えてどちらでしょうか? 別々にif文で処理する方法 try { if(!isset($_REQUEST['id'])&& !is_string($_REQUEST['id'])){ throw new Exception('error'); } if(!isset($_COOKIE['date'])&& !is_string($_COOKIE['date'])){ throw new Exception('error'); } } catch (Exception $e) { $msg = $e->getMessage(); } 一緒に処理する方法 try { if(!isset($_REQUEST['id']) && !is_string($_REQUEST['id']) && !isset($_COOKIE['date']) && !is_string($_COOKIE['date'])){ throw new Exception('error'); } } catch (Exception $e) { $msg = $e->getMessage(); } よろしくお願いします

    • ベストアンサー
    • PHP
  • readyStateが4にならない原因

    apache2でAjaxの試しとして下記スクリプトだけのhtmlファイル(http://localhost/newfile.html)を 作り動作を確認してみました(空白部分は全角になっています)。すると最後の部分の alert("Error: readyState code is " + request.readyState);で 2→アラートのOKを押す→一瞬1になり3→アラートのOKを押す→一瞬1になり0→アラートのOKを押すと1になりました。そしてコンソールには ------------------------------------------------ GET http://localhost/a.php 200 OK 60ms Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) request.send(url); ------------------------------------------------ といったエラー表示がでてしまいます。 また、request.openで渡すURLの「http://localhost/a.php」を「a.php」にすると、 一瞬1になり2→アラートのOKを押す→一瞬1になり0→アラートのOKを押すと1 になります。なぜ4にならないのでしょうか。 request.statusは全部0になっているようです。 <script language="javascript" type="text/javascript"> var request = false; try {   request = new XMLHttpRequest(); } catch (trymicrosoft) {   try {     request = new ActiveXObject("Msxml2.XMLHTTP");   } catch (othermicrosoft) {     try {       request = new ActiveXObject("Microsoft.XMLHTTP");     } catch (failed) {       request = false;     }   } } if (!request)   alert("Error initializing XMLHttpRequest!"); window.onload = getCustomerInfo; function getCustomerInfo() { var url = "test"; request.open("GET", "http://localhost/a.php", true); request.onreadystatechange = updatePage; request.send(url); } function updatePage() { if (request.readyState == 4){ if(request.status == 200){     var response = request.responseText;          document.write(response); }else  if (request.status == 404){   alert("Request URL does not exist");      }else{      alert("Error: status code is " + request.status); } }else{   alert("Error: readyState code is " + request.readyState); } } </script>

    • ベストアンサー
    • AJAX
  • try~catchについて

    プログラム初心者です 繰り返し処理の中でtry~catchにスローしてもいいでしょうか?(正常にfor文は終了しますか?) try { for($a = 0; $a < 5; $a++) { if($a==3){ throw new Exception('3'); } } catch (Exception $e) { $msg = $e->getMessage(); } よろしくお願いします

    • ベストアンサー
    • PHP
  • 助けて!! ActiveXのobject errorが解決出来ません

    助けて!! ActiveXのobject errorが解決出来ません JavaScriptを使用してHTAを起動するHTMLを作りました ソースの主要部分は次の通りです <HEAD></HEAD> <BODY> <Script Language="JavaScript"> <!-- try { WshShell = new ActiveXObject("WScript.Shell"); WshShell.exec("C:\\WINDOWS\\SYSTEM32\\mshta http://xxx.xxxx.jp/~/xxxxx.hta") } catch (e) { alert(e); } //--> </Script> </BODY> (1)このソースを自分のパソコンのディスクに格納して起動すると、HTAは動き出します (2)しかし同じソースをWebサイトにアップロードして起動すると、Object Errorとの表示が出ます 同じパソコンで同じソースを実行しているのに何故異なるのか? このHTMLとHTAは全国各地の色々なパソコンで使用される予定ですので、どの様に対処すれば良いのでしょうか? 教えてください、お願いします、助けて!!!

  • スクリプトエラーの処理をalertにしたい

    http://www.e-net.or.jp/user/yosshi/calcu.html 例えばこの電卓はめちゃくちゃな式を入れて計算させる(=Answerを押下する)と IE6からスクリプトエラーになってしまいますが、 不正な式は一律に alertで「式が不正です」と処理することはできますでしょうか。 よろしくお願い致します。

専門家に質問してみよう