在什么情况下应该抓住java.lang.Error
应用程序?
保持JMS连接/会话/消费者总是打开一个坏习惯吗?
代码草案示例:
// app startup code
ConnectionFactory cf = (ConnectionFactory)jndiContext.lookup(CF_JNDI_NAME);
Connection connection = cf.createConnection(user,pass);
Session session = connection.createSession(true,Session.TRANSACTIONAL);
MessageConsumer consumer = session.createConsumer(new Queue(queueName));
consumer.setMessageListener(new MyListener());
connection.start();
connection.setExceptionListener(new MyExceptionHandler()); // handle connection error
// ... Message are processed on MyListener asynchronously ...
// app shutdown code
consumer.close();
session.close();
connection.close();
Run Code Online (Sandbox Code Playgroud)
有什么建议可以改善这种JMS使用模式吗?
如何忽略JAXB中的意外元素情况仍然得到所有其他类型的javax.xml.bind.UnmarshalException?
obj = unmler.unmarshal(new StringReader(xml))
Run Code Online (Sandbox Code Playgroud)
注意我仍然想获得xml解析的obj结果.
例如C#中属性的语法糖:
private int x;
public int X{
get { return x; }
set { x = value; }
}
Run Code Online (Sandbox Code Playgroud)
或者干脆
public int X{ get; set; }
Run Code Online (Sandbox Code Playgroud)
我在java中错过了逐字符串... @"C:\ My Documents \"而不是"C:\\ My Documents \\"
你是否同意Java需要更多"糖"?任何人都知道下一个Java版本中会有糖吗?
您如何使您的停止/启动服务脚本优雅地处理卡在 STOP_PENDING 或 START_PENDING 中的服务...
与 SC STOP 和 START 相关。通过批处理或 cmd 文件停止和启动服务?
我想到了一种方法,但我不喜欢它。
我正在写一些代码,我注意到异常处理中的一个模式让我思考:
try{
// do stuff... throws JMS, Create and NamingException
} catch (NamingException e) {
log1(e);
rollback();
doSomething(e)
} catch (CreateException e) {
log1(e);
rollback();
doSomething(e)
}
Run Code Online (Sandbox Code Playgroud)
JMSException将处理堆栈中的某些位置.
是不是只写:
try{
// do stuff... throws JMS, Create and NamingException
} catch Exception[NamingException, CreateException] e) {
log1(e);
rollback();
doSomething(e)
}
Run Code Online (Sandbox Code Playgroud)
而不是把它放在一个辅助方法:
try{
// do stuff... throws JMS, Create and NamingException
} catch (NamingException e) {
helper_handleError1(e)
} catch (CreateException e) {
helper_handleError1(e)
}
Run Code Online (Sandbox Code Playgroud)
请注意,我想传播原始JMSException的堆栈跟踪,并且我"不想"使用第三个catch子句创建新的JMSException :)
有什么难事吗?这是一种极端的情况,只会污染Java的语法,还是只是添加一个很酷的东西?