java e e_java – e.getMessage()和e.getLocalizedMessage()之间的区别
正如大家上面提到的 –
据我了解,getMessage()返回异常的名称。 getLocalizedMessage()以用户的本地语言(中文,日语等))返回异常的名称。为了使这个工作,您调用getLocalizedMessage()的类必须覆盖getLocalizedMessage()方法。如果没有,则调用其中一个超类的方法,默认情况下只返回getMessage的结果。
除此之外,我想放一些代码段来解释如何使用它。
如何使用它
Java没有什么魔法,但它确实提供了一种使我们的生活更轻松的方法。
要有效地使用getLocalizedMessage(),我们必须覆盖默认行为。
import java.util.ResourceBundle;
public class MyLocalizedThrowable extends Throwable {
ResourceBundle labels = ResourceBundle.getBundle("loc.exc.test.message");
private static final long serialVersionUID = 1L;
public MyLocalizedThrowable(String messageKey) {
super(messageKey);
}
public String getLocalizedMessage() {
return labels.getString(getMessage());
}
}
在此示例中,您必须在loc / exc / test路径中放置特定于语言的属性文件。例如:
message_fr.properties(包含一些键和值):
key1=this is key one in France
message.properties(包含一些键和值):
key1=this is key one in English
现在我们假设我们的异常生成器类是这样的
public class ExceptionGenerator {
public void generateException() throws MyLocalizedThrowable {
throw new MyLocalizedThrowable("key1");
}
}
主要课程是:
public static void main(String[] args) {
//Locale.setDefault(Locale.FRANCE);
ExceptionGenerator eg = new ExceptionGenerator();
try {
eg.generateException();
} catch (MyLocalizedThrowable e) {
System.out.println(e.getLocalizedMessage());
}
}
默认情况下,如果您在“英语”环境中执行,它将返回“英文”键值。如果将本地设置为法国,您将从message_fr文件中获取输出。
何时使用
如果您的应用程序需要支持l10n / i18n,则需要使用它。但大多数应用程序不需要,因为大多数错误消息不是最终客户,而是支持工程师/开发工程师。
java e e_java – e.getMessage()和e.getLocalizedMessage()之间的区别相关推荐
- java中static、final 和 static final之间的区别
java中static.final 和 static final之间的区别 static可以修饰:全局属性,方法,代码块,内部类(静态内部类或嵌套内部类) 由于静态属性和方法是属于该类的所有对象的,所 ...
- java 逻辑或 作用_Java开发中与之间的区别,你真的知道吗?
&与&& 首先来讲一下&&,这个在java逻辑运算符里面被称为短路与,它与&逻辑与只差了一个& ,但是区别却很大,它的作用是如果前面的表达式运行 ...
- Java中 break、continue 和 return三者之间的区别
一.Java break 可以直接强行退出当前的循环,忽略循环体中任何其他语句和循环条件测试 以下实例使用了 break 关键字来跳出当前循环: public class Main {public s ...
- IO流介绍、java常用的几个IO流类之间的区别,以及各自的用法、使用场景
1. IO流介绍 IO流(Input Output Stream,输入输出流),表示数据在程序内存和磁盘之间的传输.按照数据流的流向不同分为输入.输出流,输入流表示程序从磁盘读入数据,输出流表示程序往 ...
- Java中实现多线程的两种方式之间的区别
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- java有var吗_java – Var和Var之间的区别
tldr; 虽然var和var都会将它们应用到的变量增加,但var返回的结果是变量在递增前的值,而var返回的结果是应用增量后的变量值. 进一步说明 当var或var形成完整的语句(如在你的例子中), ...
- java dateformat hh_SimpleDateFormat上的Java HH:mm和hh:mm之间的区别
kk:mm,HH:mm和hh:mm格式有何区别? SimpleDateFormat broken = new SimpleDateFormat("kk:mm:ss"); broke ...
- mock()java,关于java:@ Mock,@ MockBean和Mockito.mock()之间的区别
创建测试和模拟依赖项时,这三种方法有什么区别? @MockBean: @MockBean MyService myservice; @嘲笑: @Mock MyService myservice; Mo ...
- java generics_java – Generics中原始类型和?之间的区别
的ArrayList简单地表示"任何类型".换句话说,可以将任何类型的ArrayList分配给这样的变量.这可以是ArrayList< Integers>,ArrayL ...
最新文章
- centos 6.5网卡固定IP重启出错
- poj -- 1185 炮兵阵地
- 再破纪录!ECCV 2020 旷视研究院15篇成果总览
- 云计算设计模式(五)——计算资源整合模式
- Express框架实现原理
- 源码编译OpenCV卡在ippicv
- 使用计算机眼睛保护方法,电脑工作者保护眼睛的22个方法
- amend用法 git 信息_Git 高级用法,你用过哪些了
- 如何设置并使用运行在远程服务器上jupyter notebook
- 555定时器的应用——单稳态触发器
- python GIL 全局锁
- Android跳转小项目-CHANGE页面-Recycylerview、List、Context(二)
- word排版快捷指令_在word文档中如何利用快捷键快速排版呢?
- unity VR中制作小地图的方法
- mysql 授权root帐号可以远程访问,导入sql文件,登录mysql用root帐号,设置密码
- L2-025 分而治之 (25 分)详解
- AndroidStudio初体验
- vim 配置文件.vimrc[放在home目录下哦]
- 抖音矩阵系统源码定制。look here
- R语言中 layout函数
热门文章
- D3.js 第12课 布局是什么
- 7-2 币值兑换 编程总结
- NNDL 作业7:第五章课后题
- 统信UOS V20镜像文件下载地址
- 手机ROOT,ROOT的优缺点
- [AcWing] 1018. 最低通行费(C++实现)数字三角形模型
- MATLAB视频转换
- htc刷Android7.0,快来膜拜HTC神机HD2,谁说低配刷不了安卓7.0?
- 蓝桥杯ACM简单题-生日蜡烛 2020-12-22
- 三菱FX1N PLC 485与三菱变频器modbus通讯 对变频器进行频率设定,加减速时间设置,正反转,启停控制