Измените ваш код
public class InputFragment extends Fragment implements View.OnClickListener
translate_button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View InputFragmentView)
{
Log.d("Test", "onClickListener ist gestartet");
Toast.makeText(getActivity().getApplicationContext(), "Test", Toast.LENGTH_LONG).show();
saveInString();
}
});
Очевидная вещь, которую нужно сделать, это просто поместить сообщение об ошибке в foo
. Если вы не можете этого сделать, просто оберните это:
bool fooWithLogging(int x, iny y)
{
auto result = foo(x,y);
if (result)
{
std::cerr << "Error occurred with values" << x << "," << y << std::endl;
}
}
Вызов обертки в вашем коде:
void func1()
{
...
fooWithLogging(x,y);
...
}
void func2()
{
...
fooWithLogging(x,y);
...
}
Бонус: сделайте запись динамической:
[ 112]А теперь с вашим требованием FILE и LINE, которое только что упоминалось в комментариях:
bool _fooWithLogging(int x, iny y, const std::string& filename, int line)
{
auto result = foo(x,y);
if (result && g_isFooLoggingEnabled)
{
std::cerr << "Error occurred in file" << filename << " on line " << line << " with values" << x << "," << y << std::endl;
}
}
#define FooWithLogging(x, y) _fooWithLogging(x, y, __FILE__, __LINE__)
Затем в коде:
void func1()
{
...
FooWithLogging(x,y);
...
}