В Swift 3 используйте
DispatchQueue.main.async {
self.tableView.reloadData()
}
Вот так.
>>> try:
... raise UnrecognizedAirportError("func","arg1","arg2")
... except UnrecognizedAirportError, e:
... print e.args
...
('func', 'arg1', 'arg2')
>>>
Ваши аргументы находятся в args
, если вы просто подклассифицируете Exception
.
См. http://docs.python.org/library/exceptions.html#module-exceptions
Если класс исключения является производным от стандартный корневой класс BaseException, связанное значение присутствует как атрибут args экземпляра исключения.
Edit Bigger Example.
class TestSomeException( unittest.TestCase ):
def testRaiseWithArgs( self ):
try:
... Something that raises the exception ...
self.fail( "Didn't raise the exception" )
except UnrecognizedAirportError, e:
self.assertEquals( "func", e.args[0] )
self.assertEquals( "arg1", e.args[1] )
except Exception, e:
self.fail( "Raised the wrong exception" )
assertRaises
немного упрощен и не позволяет вам проверять детали вызванного исключения, выходящие за пределы его принадлежности к указанному классу. Для более детального тестирования исключений вам необходимо «прокрутить свое собственное» с помощью блока try / except / else
(вы можете сделать это раз и навсегда в методе def assertDetailedRaises
вы добавляете в свой собственный общий подкласс тестового примера unittest, затем все ваши тестовые примеры наследуют ваш подкласс вместо unittest).