Entweder log oder rethrow diese Ausnahme
Mögliche Duplikate von Sonar beschweren sich über die Protokollierung und erneute auslösen der exception.
Dies ist mein code in einer Klasse:
try
{
this.processDeepLinkData(data);
}
catch (final Exception e)
{
//Error while parsing data
//Nothing we can do
Logger.error(TAG, "Exception thrown on processDeepLinkData. Msg: " + e.getMessage());
}
und meine Logger-Klasse:
import android.content.Context;
import android.util.Log;
import com.crashlytics.android.Crashlytics;
public final class Logger
{
/**
* Convenience method.
*
* @see Logger#log(String, String)
*/
public static void error(final String tag, final String msg)
{
if (Logger.DEBUG)
{
Log.e(tag, "" + msg);
}
else
{
Logger.log(tag, "" + msg);
}
}
private static void log(final String tag, final String msg)
{
Crashlytics.log(tag + ": " + msg);
}
}
Sonar verweist catch (final Exception e)
und sagt Either log or rethrow this exception
. Was denkst du?
InformationsquelleAutor Hesam | 2015-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man sich an die Regel der Beschreibung :
https://rules.sonarsource.com/java/RSPEC-1166
Und vor allem der Titel :
In Ihrem Fall sind Sie nur aufpassen, dass die Botschaft der Ausnahme, also nicht die Erhaltung der eventuelle stacktrace (und damit die Ursache des Fehlers).
Diese Regel erkennt, dass Sie nicht die Gefangene exception als ein ganzes Objekt im catch-block.
Diese möglicherweise nicht geeignet in Ihrem Fall : entweder markieren Sie die Regel, als "won' T fix" oder deaktivieren Sie es in Ihrer Qualität Profil.
Noncompliant code example
, zweite Probe,try { /* ... */ } catch (Exception e) { LOGGER.info(e.getMessage()); }
sieht aus wie meins. Ist es nicht?ja, und so ist dies als _NON_compliant so ist dies zu erwarten, ist es nicht ?
Yup, danke. Ich bekam Kopfschmerzen, für die Zeit in dieser.... Sie haben absolut Recht.
link-Seite ist nicht vorhanden jetzt
danke, link aktualisiert.
InformationsquelleAutor benzonico