我正在处理一个pl-sql脚本,其中有大约10个TO_CHAR转换。
其中一个是抛出一个
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
异常。
目前,我正在使用这段代码记录消息
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('Exception message is '||SQLERRM(sqlcode));
ROLLBACK;
我想添加(主要用于调试目的)抛出异常的行,以便接收格式为
ORA-0650
我知道使用try...except语句可以忽略Python中的异常。在Python中出现异常,但仍然打印异常时,是否可以忽略它们?
我试图在这里忽略该异常,因此,当遇到异常时,不会打印该异常:
try:
num = 0
if num == 0:
raise Exception("Num must not be 0!")
except Exception:
pass
'''The exception is ignored, and is not printed.'''
我编写了一个简单
每当我进入调试模式,我就会看到
A first chance exception of type '..' occurred in '...'.exe
我真的希望能够看到哪一行抛出了异常,特别是在有很多异常抛出行的项目中。
在抛出异常的地方,几乎不可能重写它来打印堆栈跟踪,所以我想知道是否有一个选项可以用该错误消息显示行号?
编辑:我正在使用2013
在我使用Java编程的经验中,我非常喜欢它在代码出错时生成的堆栈跟踪,但我觉得相比于python生成的跟踪有点不足。例如,java中的跟踪可能如下所示:
java.lang.RuntimeException
at test.package.Example.c(Example.java:20)
at test.package.Example.b(Example.java:15)
at test.package.Example.a(Example.java:10)
然而,python跟踪可能如下所示:
Traceback (most recent call last):
我使用BeautifulSoup时出了一个奇怪的错误。
下面是我正在运行的代码片段:
while True:
listing_soup = soupify(urlget(page_url))
for i in listing_soup.findAll('div', 'searchResultContent'):
# do some stuff ...
下面是抛出的异常:
Traceback (most recent call last):
File "C:\path\to\script.py", line 71
我一直在寻找一个简单python线程池模式的良好实现,但实际上找不到适合我需要的任何东西。我使用python2.7,我找到的所有模块要么不能工作,要么不能正确处理工作人员中的异常。我想知道是否有人知道一个库可以提供我正在搜索的功能类型。非常感激的帮助。
多处理
我的第一次尝试是使用内置的multiprocessing模块,但由于它不使用线程,而是使用子进程,所以我们遇到了对象不能被腌制的问题。不,到这里来。
from multiprocessing import Pool
class Sample(object):
def compute_fib(self, n):
我有一组Python 3单元测试,在使用以下命令行执行时:
python3 -m unittest discover -f -v
生成PendingDeprecationWarning的...are
/usr/local/Cellar/python3/3.4.2/Frameworks/Python.framework/Versions/3.4/lib/python3.4/imp.py:32:
PendingDeprecationWarning: the imp module is deprecated in favour of importlib; see the module'
使用此代码:
Dim sf As New StackFrame(0, True)
MessageBox.Show("Module: " & sf.GetFileName & " -Line: " & sf.GetFileLineNumber.ToString)
我可以获得发生未处理异常的类和行号(在ApplicationEvents.vb, Sub MyApplication_UnhandledException(...) Handles Me.UnhandledException中)
但是,如果我使用EazFuscator混淆代码(
当Python解释器报告一个错误/异常时(从现在起,我只想说" error“来引用这两个错误),它会打印导致错误的行号和内容。
有趣的是,如果您有一个长时间运行的Python,它会导致一个错误并在脚本运行时更改.py文件,那么解释器可以根据.py文件的更改内容报告一个不正确的行来引发错误。
MWE:
sample.py
from time import sleep
for i in range(10):
print(i)
sleep(1)
raise Exception("foo", "bar")
此脚本运行10秒,然后引发异常。
s
回到我使用ASP.NET MVC 3在代码中使用同步方法时,如果抛出异常,在异常筛选器中不难找到它的来源。只看堆栈的痕迹就够了。
但是,当async Web中的ASP.NET方法抛出异常时,异常细节就不那么有用了,因为堆栈跟踪没有显示异常是从哪里抛出的:
System.ArgumentException: title must not be empty.
Parameter name: title
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__1.MoveNext
我从我的应用程序中得到了以下异常:
异常中的#1681行指向我的应用程序代码中的这一行:
其中iSC_Queue是一个简单的DTO类,如下所示:
public class iSC_Queue
{
public string ID { get; set; }
public string TriggerTableName { get; set; }
public string TriggerTableID { get; set; }
public string TriggerTableIDValue {
在JavaScript中捕获/处理异常时,如何确定异常发生时的调用堆栈是什么?(如果可能的话,还有行号是多少)
try
{
// etc...
}
catch (ex)
{
// At this point here I want to be able to print out a detailed exception
// message, complete with call stack, and if possible line numbers.
}
如果我这样做了
def eval_file(file)
instance_eval read(file)
end
然后,一旦在文件中的某个方法/块中发生了一些事情,我看到的就是类似于(eval):20 in 'eval_file的东西。当我对许多文件使用eval_file时,很难判断异常来自哪个文件(当使用方法时,异常发生在评估之后)。
有没有办法让我看到实际的文件和行号?
仅仅从命令行运行脚本就会遇到一种奇怪的情况:当我遇到错误时,通常给出的回溯包含毫无意义的代码。回溯中的每一行都应该是一个方法调用,但有时不是,回溯中引用的行并不对应于给定的错误。发生什么事了呢?作为示例,下面是一个简单的错误,其中没有导入numpy,但是回溯没有什么意义,并且引用了不相关的代码行:
Traceback (most recent call last):
File "bin/train_global_model.py", line 549, in <module>
if __name__ == '__main__':
Fi