Java 不同的异常报告
我只是在考虑java异常。有许多不同的类型,他们都为自己的一部分工作。我好奇的是如何处理它们。比如说Java 不同的异常报告,java,logging,error-handling,exception-handling,black-box-testing,Java,Logging,Error Handling,Exception Handling,Black Box Testing,我只是在考虑java异常。有许多不同的类型,他们都为自己的一部分工作。我好奇的是如何处理它们。比如说 try { //Protected code }catch(ExceptionName e1) { //Catch block } 在catch blok中,有多种方法可以报告异常。 我已经找到了几个,但我想还有更多: System.err.println(e1)用于调试 system.println.out(e1)仅查看本地验证的错误 e1.printStackTrace(
try
{
//Protected code
}catch(ExceptionName e1)
{
//Catch block
}
在catch blok中,有多种方法可以报告异常。
我已经找到了几个,但我想还有更多:
System.err.println(e1)代码>用于调试
仅查看本地验证的错误system.println.out(e1)
e1.printStackTrace()代码>仅查看错误
Logger.getLogger(classname.class.getName()).log(Level.SEVERE,null,e1)代码>如果我是正确的,则调试、信息和错误的级别可能会有所不同
异常处理是测试代码的好工具吗?它是否可以替代黑盒测试?您的问题主要是关于日志记录的,根据您的需求和应用程序的复杂性,有几种方法可以做到这一点。它们之间有明显的区别,例如: System.out.println()使用Scanner类的PrintStream out静态对象将传递的参数打印到控制台中。println()是PrintStream类的一个方法。绝对不是一个合适的日志记录解决方案 System.println.out()我认为System类中不存在这样的方法,请参阅 System.err.println()确实存在,并且还是PrintStream类的静态对象。这是标准错误输出流,它已经打开,正在等待接收应该引起用户注意的数据 如果您使用的是console,您将无法看到err.println()和out.println()之间的差异。显然,您可以对它们进行配置,以便err.println()输出文件中的所有错误 Java的类扩展了Throwable并实现了Serializable接口。Exception从Throwable类继承以下所有方法:
- getCause()-如果原因不存在,则返回Throwable或null
- getMessage()-返回此可丢弃项的详细信息的字符串消息
- getStackTrace()-返回可丢弃文件的StackTraceElement[]
- printStackTrace()-有两种变体,如下所述
- 严重(最高)
- 警告
- 信息
- 其他级别
- 记录简单的文本消息
- 用于筛选不同日志消息的日志级别
- 日志类别
- 日志文件循环
- 能够加载配置的配置文件
- 巨浪还在继续
Exception handling good for testing? No.
Is logging good for testing? No.
异常处理是指当您处理意外情况时。例如,您需要整数输入,然后得到字符串。如果不处理此类场景,则执行会中断。因此,可以编写try-and-catch块来捕获此类异常,然后警告用户只应输入整数。与此类似,存在许多异常,异常导致代码的执行暂停。如果用户能够停止代码的执行,那么这不是一个好程序,因此,您需要异常处理来处理任何类型的用户、输入的数据等
您不能使用异常处理进行测试,但它确实可以帮助您。怎么用?异常处理可用于测试框架,以帮助您手动抛出不同类型的异常,然后使用您的异常处理代码段进行处理
日志记录不能用于测试,但可以用于测试。您可以将日志框架与测试框架(如JUnit)一起使用,以便运行测试并记录测试执行期间发生的所有事件。您可以配置日志框架w