gm-docs-parser 1.0.0

A collection of typings for GameMaker Studio 2 manual pages
Documentation
<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head>

  <script type="text/javascript" language="JavaScript">
    //<![CDATA[
    function reDo() {
      if (innerWidth != origWidth || innerHeight != origHeight)
        location.reload();
    }
    if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
      origWidth = innerWidth;
      origHeight = innerHeight;
      onresize = reDo;
    }
    onerror = null;
  //]]>
  </script>
  <style type="text/css">/*<![CDATA[*/

    < !-- div.WebHelpPopupMenu {
      position: absolute;
      left: 0px;
      top: 0px;
      z-index: 4;
      visibility: hidden;
    }

    p.WebHelpNavBar {
      text-align: right;
    }

    -->
  
/*]]>*/</style>

  <script type="text/javascript">//<![CDATA[

    gRootRelPath = "../../..";
    gCommonRootRelPath = "../../..";
    gTopicId = "9.2.20.0_4";
  
//]]></script>

  <script type="text/javascript" src="../../../template/scripts/rh.min.js"></script>
  <script type="text/javascript" src="../../../template/scripts/common.min.js"></script>
  <script type="text/javascript" src="../../../template/scripts/topic.min.js"></script>
  <script type="text/javascript" src="../../../template/scripts/topicwidgets.min.js"></script>
<script type="text/javascript" src="../../../whxdata/projectsettings.js"></script>
  <link rel="stylesheet" type="text/css" href="../../../template/styles/topic.min.css"/>
  <link rel="stylesheet" type="text/css" href="../../../template/Charcoal_Grey/topicheader.css"/>
  <meta name="topic-status" content="Draft"/>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>exception_unhandled_handler</title>
  <meta name="generator" content="Adobe RoboHelp 2019"/>
  <link rel="stylesheet" href="../../../assets/css/default.css" type="text/css"/>
  <meta name="rh-authors" content="Mark Alexander"/>
  <meta name="topic-comment" content="Reference page for exception_unhandled_handler"/>
  <meta name="rh-index-keywords" content="exception_unhandled_handler"/>
  <meta name="search-keywords" content="exception_unhandled_handler"/>
</head>

<body>
  <div class="topic-header rh-hide" id="rh-topic-header" onclick="rh._.goToFullLayout()">
    <div class="logo">
    </div>
    <div class="nav">
      <div class="title" title="exception_unhandled_handler">
        <span>exception_unhandled_handler</span>
      </div>
      <div class="gotohome" title="Click here to see this page in full context">
        <span>Click here to see this page in full context</span>
      </div>
    </div>
  </div>
  <div class="topic-header-shadow rh-hide" id="rh-topic-header-shadow"></div>



  <!--<div class="body-scroll" style="top: 150px;">-->
  <h1>exception_unhandled_handler</h1>
  <p>This runtime function can be used to &quot;take over&quot; the default GameMaker Studio 2 error message when a runtime exception occurs. You supply a method or function and it will be passed the exception struct that is created when the exception
    was thrown. This struct has the following format:</p>
  <p class="code">{<br/> message : &quot;&quot;,               // a string that is a short message for this exception<br/> longMessage : &quot;&quot;,           // a string that is a longer message for this exception<br/> script : &quot;&quot;,                // a string
    that describes where the exception came from<br/> stacktrace : [ &quot;&quot;, &quot;&quot; ],    // an array of strings that is the stack frame the exception was generated<br/> }
  </p>
  <p>Using this function means that no error message will be shown to the user, and note that the context for running the method is <i>not</i> in an event and so it is highly unlikely that anything could be rendered at this time to the screen. In general,
    the safest thing that could be done at this point is to save a file with the exception context information so it could be - for example - parsed and processed on the next run of the game and then dealt with.</p>
  <p>The function will not return anything by default, but if you use the <tt>return</tt> statement in the supplied method, then the given value will be converted to an integer and used as the exit code from the runner.</p>
  <p> </p>
  <h4>Syntax:</h4>
  <p class="code">exception_unhandled_handler(user_handler);</p>
  <table>
    <tbody>
      <tr>
        <th>Argument</th>
        <th>Description</th>
      </tr>
      <tr>
        <td>user_handler</td>
        <td>The method (user-defined function) to use as the exception handler.</td>
      </tr>
    </tbody>
  </table>
  <p> </p>
  <h4>Returns:</h4>
  <p class="code">Integer (if supplied)</p>
  <p> </p>
  <h4>Example:</h4>
  <p class="code">exception_unhandled_handler(function(ex))<br/>     {
    <br/>     show_debug_message( &quot;--------------------------------------------------------------&quot;);<br/>     show_debug_message( &quot;Unhandled exception &quot; + string(ex) );<br/>     show_debug_message( &quot;--------------------------------------------------------------&quot;);<br/>        if file_exists(&quot;crash.txt&quot;) file_delete(&quot;crash.txt&quot;);<br/>     var _f = file_text_open_write(&quot;crash.txt&quot;);<br/>     file_text_write_string(_f, string(ex));<br/>     file_text_close(_f);
    <br/>     return 0;<br/>     }
    <br/> )
  </p>
  <p>The above code will create an exception handler method and use it to save a file with the exception data.</p>
  <p> </p>
  <p> </p>
  <p> </p>
  <div class="footer">
    <div class="buttons">
      <div class="clear">
        <div style="float:left">Back: <a href="Debugging.htm">Debugging</a></div>
        <div style="float:right">Next: <a href="get_integer.htm">get_integer</a></div>
      </div>
    </div>
    <h5>© Copyright YoYo Games Ltd. 2020 All Rights Reserved</h5>
  </div>
  <!-- KEYWORDS
exception_unhandled_handler
-->
  <!-- TAGS
exception_unhandled_handler
-->

</body></html>