UiThreadUtil.assertX should only throw in DEBUG mode

Summary:
Turns out that `SoftAssertions.java` has always been a lie - it actually always throws exceptions. Migrate it to using `ReactSoftException`.

This file hasn't been touched at all since it was originally open-sourced, besides codemods!

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D18336020

fbshipit-source-id: cba3db25a9f9d61325dd3f7843e92e984ae56281
This commit is contained in:
Joshua Gross 2019-11-05 15:32:35 -08:00 коммит произвёл Facebook Github Bot
Родитель e885ddedb9
Коммит b1b97b8b45
1 изменённых файлов: 12 добавлений и 6 удалений

Просмотреть файл

@ -20,26 +20,32 @@ public class SoftAssertions {
/** /**
* Throw {@link AssertionException} with a given message. Use this method surrounded with {@code * Throw {@link AssertionException} with a given message. Use this method surrounded with {@code
* if} block with assert condition in case you plan to do string concatenation to produce the * if} block with assert condition in case you plan to do string concatenation to produce the
* message. * message. This logs an assertion with ReactSoftException, which decides whether or not to
* actually throw.
*/ */
public static void assertUnreachable(String message) { public static void assertUnreachable(String message) {
throw new AssertionException(message); ReactSoftException.logSoftException("SoftAssertions", new AssertionException(message));
} }
/** /**
* Asserts the given condition, throwing an {@link AssertionException} if the condition doesn't * Asserts the given condition, throwing an {@link AssertionException} if the condition doesn't
* hold. * hold. This logs an assertion with ReactSoftException, which decides whether or not to actually
* throw.
*/ */
public static void assertCondition(boolean condition, String message) { public static void assertCondition(boolean condition, String message) {
if (!condition) { if (!condition) {
throw new AssertionException(message); ReactSoftException.logSoftException("SoftAssertions", new AssertionException(message));
} }
} }
/** Asserts that the given Object isn't null, throwing an {@link AssertionException} if it was. */ /**
* Asserts that the given Object isn't null, throwing an {@link AssertionException} if it was.
* This logs an assertion with ReactSoftException, which decides whether or not to actually throw.
*/
public static <T> T assertNotNull(@Nullable T instance) { public static <T> T assertNotNull(@Nullable T instance) {
if (instance == null) { if (instance == null) {
throw new AssertionException("Expected object to not be null!"); ReactSoftException.logSoftException(
"SoftAssertions", new AssertionException("Expected object to not be null!"));
} }
return instance; return instance;
} }