使用try except时递归打印异常详细信息

时间:2017-05-23 15:39:08

标签: python exception

$(document).ready(function () {

    var validator = $("#new-entry").validate({
        submitHandler: function (form) {
            console.log("Submitted");
            var sale;

            sale.clientId = $("#clientId").val();
            sale.notes = $("#notes").val();
            sale.repId = $("#repId").val();
            sale.dateOfSale = $("#dateOfSale").val();
            sale.amount = $("#amount").val();
            sale.currencyId = $("#currencyId").val();

            $.ajax({
                url: "/api/sales/new",
                method: "POST",
                data: sale
            });

            return false;
        }
    });

    var dialog = $("#modify-sale").dialog({
        autoOpen: false,
        height: 600,
        width: 450,
        modal: true
    });

    $("#add-new").button().on("click", function () {
        dialog.dialog("open");
    });
});

如果我运行上述程序,它将打印以下异常消息。

#!/usr/bin/env python

#import re


def test_ex1(input):
    if re.match(r'^[A-Z]+$',input):
        print 'Match'
        return True
    print 'No Match'
    return False   


#test_ex1('ABC')
try:
    test_ex1('ABC')
except Exception:
    raise Exception

在Python中使用a:~/Python> python test.py Traceback (most recent call last): File "test.py", line 18, in <module> raise Exception Exception 捕获异常而不更改try except子例程的情况下,打印以下堆栈跟踪的正确方法是什么?

test_ex1

2 个答案:

答案 0 :(得分:2)

一种方法是使用traceback模块

import traceback

try:
  re.match()
except Exception:
  traceback.print_exc()

答案 1 :(得分:-1)

我曾经使用以下方法将所有追溯打印为:

import sys

try:
    # code here
except Exception:
    print(sys.exc_info()[0])

raise关键字用于将错误引发到堆栈并在函数调用的上层处理。