UNPKG

blossom

Version:

Modern, Cross-Platform Application Framework

85 lines (84 loc) 3.31 kB
// ========================================================================== // Project: SproutCore - JavaScript Application Framework // Copyright: ©2006-2011 Strobe Inc. and contributors. // Portions ©2008-2010 Apple Inc. All rights reserved. // License: Licensed under MIT license (see license.js) // ========================================================================== // /** // If an exception is thrown during execution of your SproutCore app, this // object will be given the opportunity to handle it. // // By default, a simple error message is displayed prompting the user to // reload. You could override the handleException method to, for example, send // an XHR to your servers so you can collect information about crashes in your // application. // // Since the application is in an unknown state when an exception is thrown, we // rely on JavaScript and DOM manipulation to generate the error instead of // using SproutCore views. // // @since SproutCore 1.5 // */ // // SC.ExceptionHandler = { // /** // Called when an exception is encountered by code executed using SC.run(). // // By default, this will display an error dialog to the user. If you // want more sophisticated behavior, override this method. // // @param {Exception} exception the exception thrown during execution // */ // handleException: function(exception) { // if (this.isShowingErrorDialog) return; // // this._displayErrorDialog(exception); // }, // // /** @private // Creates the error dialog and appends it to the DOM. // // @param {Exception} exception the exception to display // */ // _displayErrorDialog: function(exception) { // var html = this._errorDialogHTMLForException(exception), // node = document.createElement('div'); // // node.style.cssText = "left: 0px; right: 0px; top: 0px; bottom: 0px; position: absolute; background-color: white; background-color: rgba(255,255,255,0.6); z-index:100;"; // node.innerHTML = html; // // document.body.appendChild(node); // // this.isShowingErrorDialog = true; // }, // // /** @private // Given an exception, returns the HTML for the error dialog. // // @param {Exception} exception the exception to display // @returns {String} // */ // _errorDialogHTMLForException: function(exception) { // var html; // // html = [ // '<div id="sc-error-dialog" style="position: absolute; width: 500px; left: 50%; top: 50%; margin-left: -250px; background-color: white; border: 1px solid black; font-family: Monaco, monospace; font-size: 9px; letter-spacing: 1px; padding: 10px">', // 'An error has occurred which prevents the application from running:', // '<br><br>', // exception.message, // '<div id="sc-error-dialog-reload-button" onclick="window.location.reload();" style="float: right; font-family: Monaco, monospace; font-size: 9px; letter-spacing: 1px; border: 1px solid black; padding: 3px; clear: both; margin-top: 20px; cursor: pointer;">', // 'Reload', // '</div>', // '</div>' // ]; // // return html.join(''); // }, // // /** // true if an exception was thrown and the error dialog is visible. // // @property {Boolean} // */ // isShowingErrorDialog: false // };