报错信息搜集

本文汇总了多种Java应用中常见的异常情况,特别是与Oracle数据库交互过程中出现的问题,如NoSuchElementException、SQLException、OutOfMemoryError等,并提供了相应的解决方案。

java.util.NoSuchElementException: DefaultSqlResult.getColumnID() Error=Coloumn
Name [ORDER_ID]
错误原因没有ORDER_ID这一列,但是SQL语句中有这一列。

 


[citics.log] 2005-12-23 02:25:00 GDB [citics] will start up with connection...
[dboa.log] 2005-12-23 02:25:00 Connection Pool Start up.
[dboa.log] 2005-12-23 02:25:00 initial [16]max [32]
[UserMgr.log] 2005-12-23 02:25:00 Error when getGDB (xnrs) in class initialize(com.css.core.user.util.UserInfoTable).
[UserMgr.log] 2005-12-23 02:25:00
java.sql.SQLException: Can't find class for driver: oracle.jdbc.driver.OracleDriver

没有class12这个jar文件

 

java.lang.class.cashException:
java.lang.ClassCastException

这个异常可能是得到的类型和需要的class类型不一样

 

IllegalMonitorStateException(非法监视器状态违例)

 

500 No action instance for path /repository/updateEquipmentInfo could be created
没找到path或者type所指的类

 

 

Note: sun.tools.javac.Main has been deprecated.
/inner/repository/EquipmentBuyList.jsp:156: Can't make static reference
to method java.lang.String getEquipmentType() in class com.cssweb.equipment.model.EquipmentInfo.
            name = item.getDictionaryItem(EquipmentInfo.getEquipmentType());
这个是EquipmentInfo的类型错了

java.lang.NumberFormatException: For input string: ""
 at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
这个是页面需要参数 结果没有参数回来


No getter method for property serveCompany of bean org.apache.struts.taglib.html.BEAN
这个可能是<html:form action="/addWorkExperience.do"  onsubmit="return check();"  method="post">中的action内容错误了 用tomcat调试报错

 

 

 

 


java.lang.OutOfMemoryError: Java heap space
Thursday, 7. September 2006, 08:31:58

tomcat

遇到TOMCAT出错:java.lang.OutOfMemoryError: Java heap space,于是查了资料,找到了解决方法:

If Java runs out of memory, the following error occurs:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Java heap size can be increased as follows:

java -Xms<initial heap size> -Xmx<maximum heap size>
Defaults are:
java -Xms32m -Xmx128m

如果你用win
/tomcat/bin/catalina.bat 加上下面的命令:
set JAVA_OPTS=-Xms32m -Xmx256m

如果你用unix/linux
/tomcat/bin/catalina.sh 加上下面的命令:
JAVA_OPTS="-Xms32m -Xmx256m

 

 

 

public class ArrayStoreException
extends RuntimeException
表示向一个对象数组存放一错误类型的对象时的异常。例如,下面代码将产生一 ArrayStoreException 异常:


     Object x[] = new String[3];
     x[0] = new Integer(0);

 

 

很多朋友在Java开发中,使用Oracle数据库的时候,经常会碰到有ORA-01000: maximum open cursors exceeded.的错误。

实际上,这个错误的原因,主要还是代码问题引起的。
ora-01000: maximum open cursors exceeded.
表示已经达到一个进程打开的最大游标数。


详细见超出最大游标数.txt

 

 

示试图将一对象转换为没有实例的子类时的异常。例如,以下代码将产生一 ClassCastException异常:


     Object x = new Integer(0);
     System.out.println((String)x);

 

 

 

 

 

 

 

 

 

 

 

 


 

<think>好的,我现在需要帮助用户解决如何在Python中捕获和记录运行时错误信息的问题。首先,我要回忆一下Python的异常处理机制。用户提到他们想收集运行时错误信息用于调试或分析,所以重点应该放在捕获异常和记录日志上。 根据用户提供的引用资料,特别是引用[3]和引用[4],Python使用try-except块来捕获异常。用户可能需要基本的异常捕获方法,比如使用多个except块来处理不同类型的异常,或者一个通用的except来捕获所有异常。另外,引用[1]提到了使用from来保留原始异常信息,这在重新抛出异常时很重要,可以避免丢失原始错误上下文。 然后是日志记录部分,引用[2]和引用[1]都提到了使用logging模块将错误信息记录到文件中。用户可能需要配置日志记录器,设置日志级别和文件名,这样可以将错误信息持久化,方便后续分析。同时,记录详细的错误信息,比如堆栈跟踪,对于调试来说非常有用,可能需要用到traceback模块来获取堆栈信息。 接下来,用户可能需要高级的异常处理技巧,比如自定义异常类,或者使用上下文管理器(如引用[1]中的示例)。同时,确保在捕获异常后,程序可以继续运行而不是崩溃,这对长时间运行的服务很重要。 还需要考虑异常信息的结构化和格式化,可能使用JSON格式或其他格式保存日志,方便用分析工具处理。此外,第三方库如Sentry或Loguru可能提供更强大的错误跟踪和日志管理功能,用户可能对这些工具感兴趣。 最后,用户的问题可能涉及如何避免捕获过于宽泛的异常,比如使用except Exception而不是裸露的except,以及如何正确地在日志中包含足够的上下文信息,如时间、模块、行号等。这些都是记录错误时需要注意的地方。 总结下来,回答应该分步骤介绍捕获异常的方法、日志记录的配置、高级技巧以及注意事项,确保用户能够全面了解如何有效地收集和处理Python运行时错误。</think>在Python中捕获和记录运行时错误信息可以通过以下结构化步骤实现: ### 一、基础异常捕获框架 ```python try: # 可能引发异常的代码 result = 10 / 0 except ZeroDivisionError as e: # 捕获特定异常 print(f"发生除零错误: {e}") except Exception as e: # 捕获其他所有异常 print(f"未预料的错误: {e}") ``` 此代码演示了如何通过$try...except$结构捕获特定异常和通用异常[^4] ### 二、日志记录配置(引用logging模块) ```python import logging import traceback # 配置日志系统 logging.basicConfig( filename='app_errors.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s' ) try: with open('nonexistent.txt') as f: content = f.read() except FileNotFoundError as e: # 记录完整堆栈跟踪 logging.error(f"文件未找到: {e}\n{traceback.format_exc()}") ``` 通过$traceback.format_exc()$可以记录完整的错误堆栈轨迹[^2] ### 三、高级错误处理技巧 1. **保留原始异常上下文** ```python try: import invalid_module except ImportError as ie: raise RuntimeError("依赖加载失败") from ie ``` 使用$from$关键字保留原始异常链式关系[^1] 2. **结构化错误日志** ```python import json def log_structured_error(error_type, message, context): error_data = { "timestamp": datetime.now().isoformat(), "type": error_type.__name__, "message": str(message), "context": context } logging.error(json.dumps(error_data)) ``` ### 四、注意事项 1. 避免使用裸露的$except$(会捕获所有异常包括键盘中断) 2. 在长时间运行的服务中,建议使用$logging.handlers.RotatingFileHandler$实现日志轮转 3. 结合$sys.excepthook$可以捕获未处理的异常
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值