Определение общих сообщений об ошибках с препроцессором C ++

Измените ваш код

  1. на определение класса:
     public class InputFragment extends Fragment implements View.OnClickListener
    
  2. при вызове setOnClickListener:
        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();
              }
         });
    
-2
задан ReeSSult 17 January 2019 в 01:16
поделиться

1 ответ

Очевидная вещь, которую нужно сделать, это просто поместить сообщение об ошибке в 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);
    ...
}
0
ответ дан selbie 17 January 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: