| | | | | | | [文章信息] | | | 作者: | 键者天行 | | 时间: | 2004-08-18 | | 出处: | csdn | | 责任编辑: | 方舟 | |
| [文章导读] | | | 在Java开发过程中,有时候我们要创建一些简单的类来测试某些功能 | |
| |
|
| | | |
|
|
|
|
|
异常跟踪
在Java中,利用try..catch(..finally)语句可以捕获和处理异常,非常方便。catch块的常见异常处理方式是输出异常,例如把异常输出到日志文件。
Exception类有一个printStackTrace()方法,它能够从发生异常的方法中输出堆栈信息,默认输出位置是System.err。但是,有时候我们要把堆栈信息输出到System.err之外的其他地方,例如在出现异常时把堆栈信息输出到email,或者用一个对话框显示出来。
printStackTrace()方法有几种不同的类型:
· printStackTrace(),输出到标准错误流。
· printStackTrace(PrintStream ps),输出到名为ps的PrintStream。
· printStackTrace(PrintWriter pw),输出到名为pw的PrintWriter。
我们可以用最后一种printStackTrace()方法把堆栈信息保存到String对象。只要在String对象中捕获了堆栈信息,我们就可以方便地在应用的任何地方使用这些信息了。下面的代码片断示范了具体的实现步骤:
private String getStackTraceAsString() { // StringWriter将包含堆栈信息 StringWriter stringWriter = new StringWriter(); //必须将StringWriter封装成PrintWriter对象, //以满足printStackTrace的要求 PrintWriter printWriter = new PrintWriter(stringWriter); //获取堆栈信息 e.printStackTrace(printWriter); //转换成String,并返回该String StringBuffer error = stringWriter.getBuffer(); return error.toString(); } | 快速查看JavaBean基本信息
在JBuilder中,要查看JavaBean的内部信息是非常方便的。我们可以把JavaBean拖入设计窗口中,通过Object Inspector查看JavaBean的属性和事件。但是,即使不通过设计器,我们也可以查看JavaBean的信息,这就是使用BeanInsight(菜单:Tools | BeanInsight)。
点击Examine Bean按钮就开始分析指定的JavaBean,在BeanInsight Result区域可以看到分析JavaBean的结果。如果要了解更详细的信息,点击“View Details...”按钮。
多个行的属性值
属性文件是保存应用配置信息的好方法。有了属性文件,修改应用参数时只需修改简单的属性文本文件,无需重新编译整个应用。
属性文件以“键-值”对的形式保存数据。每一个行以键开头,加上一个等于符号,再加上与该键对应的值。键与值必须在同一个行上,这一点很重要。但是,有些时候,值的内容非常多,如果值能够分成多行存放,将带来很大的方便。下面我们就来看看如何使用多行的属性值。
首先,下面这个代码片断读取test.properties属性文件:
try { Properties p = new Properties(); File file = new File("test.properties"); FileInputStream fis = new FileInputStream(file); p.load(fis); } catch (IOException ioex) { ioex.printStackTrace(); } | Properties类的load()方法需要一个输入流作为参数,这里我们向它传入了一个FileInputStream对象。
接下来,我们就可以通过调用getProperty()方法从Properties对象获取属性值。下面我们来看看test.properties属性文件的内容:
singleline=Single line value multiline =This example shows how we can write a property value over multiple lines in a properties file | 这个属性文件保存了两个属性,键分别是singleline和multiline。singleline的值只有一行,而multiline的值有多行。
如果我们调用Properties对象的getProperty()方法,并输出属性值,结果将是:
调用:
System.out.println("singleline? " + p.getProperty("singleline")); System.out.println("multiline ? " + p.getProperty("multiline")); | 结果:
singleline? Single line value multiline ? This example shows how we | multiline属性只包含了第一行值。那么,如何解决这个问题呢?其实很简单,只需要在每个行的末尾加上转义字符“\”就可以了。修改后的属性文件如下所示:
singleline=Single line value multiline =This example shows how we \ can write a property \ value over multiple lines in a \ properties file | 再次读取属性文件的值,multiline的属性值就能够完整地读取出来
|
|
|
|
|
|
|
|
|