java exception 本地化_Java中实现本地化方式显示错误

Java以本地化方式显示错误,在编写支持程序时,总是需要显示某些错误的信息,支持国际化和本地化的程序需要根据操作系统提供的信息来使用用户本地字符集来显示相应的错误信息。此程序根据相应的例外处理指定相应的错误显示信息,它为每个例外提供相应的错误消息。

Java以本地化方式显示错误,在编写支持程序时,总是需要显示某些错误的信息,支持国际化和本地化的程序需要根据操作系统提供的信息来使用用户本地字符集来显示相应的错误信息。此程序根据相应的例外处理指定相应的错误显示信息,它为每个例外提供相应的错误消息。实现方法:在资源文件内为每个例外类构建相应的错误消息,在程序当中载入这些资源,使用Errors 作为在资源当中查找的根,而使用例外对象的类名作为资源名字。程序代码的编写:

1.编写LocalizedError 类的基本框架,该类包括display()方法和main()方法,代码如下:

 代码如下复制代码
public class LocalizedError

{

public static void display(Throwable error);

public static void main(String[] args);

}

2.Display()方法用于本地化显示错误,代码如下:

 代码如下复制代码

public static void display(Throwable error)

{

ResourceBundle bundle;

// 获得所需资源

try

{

bundle = ResourceBundle.getBundle("Errors");

}

catch (MissingResourceException e)

{

error.printStackTrace(System.err);

return;

}

// 使用错误类名作为资源名称在资源当中查询本地化消息

// 如果没有则不能显示本地化错误

String message = null;

Class c = error.getClass();

while((message == null) && (c != Object.class))

{

try

{

message = bundle.getString(c.getName());

}

catch (MissingResourceException e)

{

c = c.getSuperclass();

}

}

if (message == null) {

error.printStackTrace(System.err);

return;

}

String filename = "";

int linenum = 0;

try {

StringWriter sw = new StringWriter();

PrintWriter out=new PrintWriter(sw);

error.printStackTrace(out);

String trace = sw.toString();

int pos = trace.indexOf(':'); // 查找第一个冒号

if (error.getMessage() != null) // 如果找到本地化错误消息

pos = trace.indexOf(':', pos 1); // 查找第二个冒号

int pos2 = trace.indexOf(')', pos); // 查找第N 行的尾部

linenum = Integer.parseInt(trace.substring(pos 1,pos2)); // 第N 行

pos2 = trace.lastIndexOf('(', pos); // 回到文件名的首部

filename = trace.substring(pos2 1, pos); // 获得文件名.

}

catch (Exception e) { ; }

// 设置于所得消息一起使用的参数表

String errmsg = error.getMessage();

Object[] args = {

((errmsg!= null)?errmsg:""), error.getClass().getName(),

filename, new Integer(linenum), new Date()

};

// 显示错误消息

System.out.println(MessageFormat.format(message, args));

}

3.Main()方法用于读取文件,本地化显示错误:

 代码如下复制代码

public static void main(String[] args)

{

try

{

FileReader in = new FileReader(args[0]);

}

catch(Exception e)

{

LocalizedError.display(e);

}

}

4.LocalizedError 类引入如下的包:

 代码如下复制代码

import java.text.*;

import java.io.*;

import java.util.*;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值