Skip to content

Commit

Permalink
UiThreadUtil.assertX should only throw in DEBUG mode
Browse files Browse the repository at this point in the history
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
  • Loading branch information
JoshuaGross authored and facebook-github-bot committed Nov 5, 2019
1 parent e885dde commit b1b97b8
Showing 1 changed file with 12 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,32 @@ public class SoftAssertions {
/**
* 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
* message.
* message. This logs an assertion with ReactSoftException, which decides whether or not to
* actually throw.
*/
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
* hold.
* hold. This logs an assertion with ReactSoftException, which decides whether or not to actually
* throw.
*/
public static void assertCondition(boolean condition, String message) {
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) {
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;
}
Expand Down

0 comments on commit b1b97b8

Please sign in to comment.