我有一种方法可以在某些onClickListener
上定义Button
,
这种方法会抛出异常。
void foo() throws Exception{
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
buttonClicked();
}
});
}
并且方法buttonClicked()
也会抛出异常!
void buttonClicked() throws Exception{
//some code that can cause exception
}
我想要做的是抓住来自Exception
的{{1}}并将其从buttonClicked()
投出。
所以我应该能够抓住来自foo()
的{{1}}:
Exception
关于如何操作的任何想法 - 不使用接口。
答案 0 :(得分:0)
那是你想要的?
void foo() throws Exception
{
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
try
{
buttonClicked();
}
catch (Exception e)
{
try
{
throw new Exception("message from buttonClicked(): " + e.getMessage());
}
catch (Exception newException)
{
Log.e("CATCHED", newException.getMessage());
}
}
}
});
}
那么当你致电foo()
时:
try
{
foo();
}
catch (Exception e)
{
Log.e("CATCHED", "message from foo(): " + e.getMessage());
}
因此,如果成功设置了setOnClickListener()
中的foo()
,但Exception
中foo()
已被foo()
捕获,您将收到来自buttonClicked()
的消息每次点击后来自console
的邮件。