2016-07-05 2 views
1

Я пытался поймать NSException, брошенный CancelPeripheralConnection, однако он продолжает говорить, что он должен быть получен из system.exception.Catch NSException C# xamarin

try 
{ 
    if (device.NativeDevice as CBPeripheral != null) 
    { 
      this.central.CancelPeripheralConnection(device.NativeDevice as CBPeripheral); 
    } 
    else 
    { 
      System.Diagnostics.Debug.WriteLine("Null CBPeripheral Disconnect"); 
    } 
} 
catch (Foundation.NSErrorException) 
{ 
    //works 
    System.Diagnostics.Debug.WriteLine("Caught ns Error exception"); 
} 
catch (Foundation.NSException) 
{ 
    //doesn't work 
    System.Diagnostics.Debug.WriteLine("Caught ns exception"); 
} 

я получаю следующее в моем окне вывода, когда он выходит из строя 2016-07-05 08:41:16.579 BadgeManageriOS[1066:685789] *** Assertion failure in -[CBCentralManager cancelPeripheralConnection:force:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreBluetooth/CoreBluetooth-327.3/CBCentralManager.m:332

мой вопрос, как я должен поймать NSException, как я не могу найти какую-либо документацию, где люди поймать его в место, где оно его выбрасывает.

ответ

0

ObjC NSException есть C# управляемый класс-оболочка: MonoTouchException

MonoTouchException thrownException = null; 
try { 
    ~~~~ 
} catch (MonoTouchException ex) { 
    thrownException = ex; 
} 

https://developer.xamarin.com/api/type/MonoTouch.Foundation.MonoTouchException/

Это класс обертку для класса Objective-C NSException.

+0

Эй, это не сработало. К сожалению, я также использую xamarion ios, а не классический монотот, поэтому у меня есть доступ только к https://developer.xamarin.com/api/type/Foundation.MonoTouchException/ – user6430870

+0

он утверждает, что tio будет таким же, но, возможно, он не работает одинаково. – user6430870