Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  +Copyright 2014 Appium contributors
  +Copyright 2014 Software Freedom Conservancy
  +
  +Licensed under the Apache License, Version 2.0 (the "License");
  +you may not use this file except in compliance with the License.
  +You may obtain a copy of the License at
  +
  +     http://www.apache.org/licenses/LICENSE-2.0
 +
 +Unless required by applicable law or agreed to in writing, software
 +distributed under the License is distributed on an "AS IS" BASIS,
 +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +See the License for the specific language governing permissions and
 +limitations under the License.
 + */
package io.appium.java_client;
Created by jonahss on 4/8/14.
public class MobileErrorHandler {
  private final ErrorCodesMobile errorCodes = new ErrorCodesMobile();
  public void throwIfMobileError(WebDriverException originalExceptionthrows RuntimeException {
    Class<? extends WebDriverExceptionmobileErrorType =
            .getExceptionType(originalException.getMessage());
    if (mobileErrorType == null) {
      throw originalException;
    }
    WebDriverException toThrow = null;
    if (toThrow == null) {
      toThrow = createThrowable(mobileErrorType,
              new Class<?>[]{String.classThrowable.class},
              new Object[]{originalException.getMessage(), originalException.getCause()});
    }
    if (toThrow == null) {
      toThrow = createThrowable(mobileErrorType,
              new Class<?>[]{String.class},
              new Object[]{originalException.getMessage()});
    }
    if (toThrow == null) {
      toThrow = originalException;
    }
    throw toThrow;
  }
  private <T extends Throwable> T createThrowable(
          Class<T> clazzClass<?>[] parameterTypesObject[] parameters) {
    try {
      Constructor<T> constructor = clazz.getConstructor(parameterTypes);
      return constructor.newInstance(parameters);
    } catch (NoSuchMethodException e) {
      // Do nothing - fall through.
    } catch (InvocationTargetException e) {
      // Do nothing - fall through.
    } catch (InstantiationException e) {
      // Do nothing - fall through.
    } catch (IllegalAccessException e) {
      // Do nothing - fall through.
    } catch (OutOfMemoryError error) {
      // It can happen...
    }
    return null;
  }
New to GrepCode? Check out our FAQ X