Home | History | Annotate | Download | only in device
      1 # Copyright 2014 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 """
      6 Exception classes raised by AdbWrapper and DeviceUtils.
      7 """
      8 
      9 class BaseError(Exception):
     10   """Base exception for all device and command errors."""
     11   pass
     12 
     13 
     14 class CommandFailedError(BaseError):
     15   """Exception for command failures."""
     16 
     17   def __init__(self, msg, device=None):
     18     super(CommandFailedError, self).__init__(
     19         '%s%s' % ('(device: %s) ' % device if device else '', msg))
     20 
     21 
     22 class AdbCommandFailedError(CommandFailedError):
     23   """Exception for adb command failures."""
     24 
     25   def __init__(self, cmd, msg, device=None):
     26     super(AdbCommandFailedError, self).__init__(
     27         'adb command \'%s\' failed with message: \'%s\'' % (' '.join(cmd), msg),
     28         device=device)
     29 
     30 
     31 class CommandTimeoutError(BaseError):
     32   """Exception for command timeouts."""
     33   pass
     34 
     35 
     36 class DeviceUnreachableError(BaseError):
     37   """Exception for device unreachable failures."""
     38   pass
     39 
     40 
     41 class NoDevicesError(BaseError):
     42   """Exception for having no devices attached."""
     43 
     44   def __init__(self):
     45     super(NoDevicesError, self).__init__('No devices attached.')
     46 
     47