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""" 6Exception classes raised by AdbWrapper and DeviceUtils. 7""" 8 9class BaseError(Exception): 10 """Base exception for all device and command errors.""" 11 pass 12 13 14class 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 22class 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 31class CommandTimeoutError(BaseError): 32 """Exception for command timeouts.""" 33 pass 34 35 36class DeviceUnreachableError(BaseError): 37 """Exception for device unreachable failures.""" 38 pass 39 40 41class NoDevicesError(BaseError): 42 """Exception for having no devices attached.""" 43 44 def __init__(self): 45 super(NoDevicesError, self).__init__('No devices attached.') 46 47