异常处理:
异常是指程序运行过程中所发生的不正常的事件,它会中断正在运行的程序;
异常机制为程序提供了错误处理能力
异常机制:
try catch finally
try 块中的语句正常执行完毕,不会发生异常,那么 cath 块中的所有语句都将会
被忽略;
try 块中语句执行出现异常,而且这个异常与 catch 中声明的异常类型相匹配
,那么 try 块中其余剩下的代码都将被忽略,而相应的catch 块将会被执行;
匹配是指catch所处理的异常类型与声明的异常类型完全一致;
finally 语句无论是否发生异常,finally块中的语句总能被执行;
语法1(没有finally):
try{
//写入可能产生异常的代码;
//如果代码1出现异常,则代码2 3不会执行,直接跳入catch语句;
//如果代码 1 2 3没有发生异常,catch里的语句则不会运行;
代码1;
代码2;
代码3;
} catch (异常类型){ //类型如:Exception e(名字)
//捕获并匹配catch()里的异常类型;
// (名字)e.printStackTrace(); 显示出异常的信息和出现异常的位置;
// System.out.println( e.getMessage() ); 获得异常信息;图一
}
图一:
语法2(有finally语句);
try{
//可能产生异常的代码;
} catch (异常类型){
//捕获并匹配catch()里的异常类型;
} (可以不加finally)finally {
//不管是否出现异常,都会执行finally里的代码;
}
异常类型:
如果想不执行finally里的代码,要在finally前的代码中加入:System.exit(1); 的语句;
一段代码可能会引发多种类型的异常,这时,可以在try语句块后面跟多个catch语句块。多重catch块,分别处理不同
的异常。但排序方式必须是从子类到父类;
当运行时,系统会从上到下分别对每个catch语块的异常类型进行匹配,如果第一个cathc语句的异常类型匹配的话,则执行,而后面的cathc则不执行!
throws:声明并抛出异常
位置在方法名后面 如:public void dive()throws Exception;
如果在方法内抛出一个或多个异常(可以抛出多个异常但是异常类型要用逗号隔开),这时,调用必须try语句进行处理,如果调用者不想处理,那么也要在方法后面声明抛出异常,让java虚拟机进行处理!
throw:手动抛出异常
位置在方法体内;
有些问题系统无法自动发现并解决问题。如输入的年龄不在范围内,此时需要程序员手动抛出异常,再让调用者去解决,使用try进行对throw抛出的异常进行捕获!
throw和throws的区别:
作用:throw用于在程序中抛出异常,throws用于声明在该方法内抛出异常;
使用的位置:throw位于方法内部,可以作为单独语句使用;throws必须跟在方法名后面,不能单独使用
内容:throw只能抛出一个异常对象,throws后面声明异常类型,可以跟多个异常类型(子类在前,父类在后);
log4j配置:
#设置Logger 输出级别和目的地#
log4j.rootLogger = debug,stout,logFile
#把日志信息输出到控制台#
log4j.appender.stout=org.apache.log4j.ConsoleAppender
log4j.appender.stout.Target = System.err
log4j.appender.stout.layout = org.apache.log4j.SimpleLayout
#把日志信息输出到文件夹#
log4j.appender.logFile = org.apache.log4j.FileAppender
log4j.appender.logFile.File = aaa.log
log4j.appender.logFile.layout = org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern =%d{YYYY-MM-DD HH:mm:ss}%l %F %p %m%n
- 大小: 405.2 KB
- 大小: 151.1 KB
- 大小: 126.3 KB
分享到:
相关推荐
系统核心崩溃日志和Java虚拟机崩溃日志都是非常重要的日志文件,它们可以帮助我们 debug 和解决系统崩溃和java应用崩溃的问题。 系统核心崩溃日志 在Linux系统中,当系统崩溃时,会生成一个核心崩溃文件,称为core...
Java开发中的异常处理和日志规范对于保持代码的健壮性和可维护性至关重要。下面将详细阐述这些要点: 1. **避免捕获可预检查的RuntimeException**:在Java中,像NullPointerException和IndexOutOfBoundsException...
在Java编程领域,日志文件过滤是一个至关重要的实践,它主要涉及到如何管理和分析应用程序生成的日志数据。日志记录是程序运行过程中的诊断工具,它记录了程序运行时的事件和异常,帮助开发者追踪错误、优化性能。本...
### JAVA DAO 事务界定、异常处理与日志记录 #### 一、引言 在现代软件开发中,尤其是在企业级应用领域,数据访问对象(Data Access Object,简称 DAO)模式是一种广泛采用的设计模式,用于将低级别的数据访问逻辑...
总结来说,Java异常处理机制提供了一种结构化的方法来处理程序运行时的错误,通过try-catch-finally结构捕获和处理异常,同时,利用断言进行内部逻辑验证,以及日志记录来跟踪程序行为。这样的机制增强了代码的健壮...
9. **日志和追踪**:在异常处理中,记录异常信息是关键,可以帮助调试和故障排查。可以使用`logger`来记录堆栈跟踪信息。 10. **全局异常处理**:在大型项目中,常常需要一个全局的异常处理器来捕获未被捕获的异常...
- **异常日志**:记录程序运行过程中发生的异常信息。 - **业务日志**:记录业务操作细节,如用户登录、操作记录等。 ##### 使用log4j - **安装**:首先需要下载log4j的jar文件。可以在Apache官方网站上找到log4j的...
总的来说,这个实验旨在让你掌握Java异常处理的基本原理和实践,以及log4j的日志记录功能。通过实际操作,你将能够更有效地调试代码,定位问题,为后续的Java学习打下坚实的基础。在实际项目中,良好的异常处理和...
**Java异常日志捕获与logback** 在Java开发中,日志系统是不可或缺的一部分,它可以帮助开发者跟踪程序运行状态,记录错误信息,便于后期排查问题。Logback是一款高效、强大的日志处理框架,由Ceki Gülcü(也是...
Java异常处理是编程中至关重要的一个环节,它帮助开发者识别并修复程序运行时出现的问题。在Java中,异常是程序执行期间发生的不正常情况,通常会导致程序中断。下面将详细解释给定文件中提到的一些常见Java异常,并...
Java异常处理设计是Java编程中一个至关重要的环节,它直接影响到程序的稳定性和可维护性。在Java中,异常处理是通过try-catch-finally语句块来实现的,主要涉及两大类异常:编译时异常(Checked Exception)和运行时...
4. **记录日志**:在需要的地方调用API接口记录日志,例如在异常处理、方法入口和出口、关键操作点等。 5. **查看日志**:日志会被输出到指定位置,如控制台、文件,然后根据需要进行分析和排查问题。 总的来说,...
日志文件通常记录了应用程序运行过程中的各种事件和异常信息,对于调试、性能优化和问题排查具有重要意义。 在Java中,日志分析工具可能使用了诸如`java.util.logging`、`log4j`、`slf4j`或`logback`等流行的日志...
Java异常处理包括五个关键字:try、catch、finally、throw和throws。try块用于包含可能会抛出异常的代码,catch块用来捕获并处理异常,finally块确保在任何情况下都会执行的代码,无论是否发生异常。如果一个方法...
本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...
在Java编程中,日志工具是非常重要的一部分,它可以帮助开发者记录程序运行时的信息,以便于调试、性能分析和故障排查。本项目提供了一个简单的日志工具类,适用于那些不需要复杂日志管理的小型项目。下面将详细介绍...
### Java日志合并知识点解析 #### 一、背景与需求分析 在软件开发过程中,日志文件对于系统维护和故障排查具有重要的作用。通常情况下,一个应用可能会产生多个日志文件,这些文件可能分布在不同的目录下。为了方便...
以下是对Java异常处理的一些误区和经验总结。 **误区一:过度使用try-catch块** 有些开发者习惯于在每个函数的开始部分都套用try-catch块,以为这样可以捕捉所有可能出现的异常。实际上,这种做法使得代码变得混乱...
为了深入理解和正确实施这一机制,本文将阐述有效处理Java异常的三个重要原则,并结合JCheckbook类的示例进行讨论。 首先,Java中的异常是由Throwable类的层次结构所定义的,其中包含了Error、Exception以及...