From d606d53b4e6d8797539f3a4ab988dc286b31d933 Mon Sep 17 00:00:00 2001 From: "Jessica B. Hamrick" Date: Wed, 1 Oct 2014 14:07:00 -0700 Subject: [PATCH] More informative error messages --- IPython/html/services/sessions/handlers.py | 6 +++++- IPython/html/static/base/js/utils.js | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/IPython/html/services/sessions/handlers.py b/IPython/html/services/sessions/handlers.py index addfd887a..d88aa9656 100644 --- a/IPython/html/services/sessions/handlers.py +++ b/IPython/html/services/sessions/handlers.py @@ -106,7 +106,11 @@ class SessionHandler(IPythonHandler): def delete(self, session_id): # Deletes the session with given session_id sm = self.session_manager - sm.delete_session(session_id) + try: + sm.delete_session(session_id) + except KeyError: + # the kernel was deleted but the session wasn't! + raise web.HTTPError(410, "Kernel deleted before session") self.set_status(204) self.finish() diff --git a/IPython/html/static/base/js/utils.js b/IPython/html/static/base/js/utils.js index aa85d17f8..cde25f30b 100644 --- a/IPython/html/static/base/js/utils.js +++ b/IPython/html/static/base/js/utils.js @@ -523,12 +523,14 @@ define([ var ajax_error_msg = function (jqXHR) { // Return a JSON error message if there is one, // otherwise the basic HTTP status text. - if (jqXHR.responseJSON && jqXHR.responseJSON.message) { + if (jqXHR.responseJSON && jqXHR.responseJSON.traceback) { + return jqXHR.responseJSON.traceback; + } else if (jqXHR.responseJSON && jqXHR.responseJSON.message) { return jqXHR.responseJSON.message; } else { return jqXHR.statusText; } - } + }; var log_ajax_error = function (jqXHR, status, error) { // log ajax failures with informative messages var msg = "API request failed (" + jqXHR.status + "): ";