contains method

bool contains(
  1. Class? exType
)

Checks if this exception or any exception in its cause chain is of the specified type.

Example:

if (exception.contains(Class<ArgumentError>())) {
  print('Contains an argument error in the chain');
}

Implementation

bool contains(Class? exType) {
  if (exType == null) return false;
  if (exType.isInstance(this)) return true;

  Throwable? cause = getCause();
  if (cause == this) return false;

  if (cause is NestedCheckedException) {
    return cause.contains(exType);
  } else {
    while (cause != null) {
      if (exType.isInstance(cause)) return true;
      if (cause.getCause() == cause) break;
      if(cause.getCause() is Throwable) {
        cause = cause.getCause() as Throwable;
      } else {
        break;
      }
    }
    return false;
  }
}