2016-07-05 9 views
1

Ich habe versucht, eine NSException geworfen von CancelPeripheralConnection zu fangen, aber es sagt, es muss von system.exception abgeleitet werden.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"); 
} 

Ich erhalte die folgende in meinem Ausgabefenster, wenn er abstürzt 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

meine Frage ist, wie soll ich das NSException fangen, wie ich keine Dokumentation zu finden scheinen, wo die Menschen sie fangen in der Ort, wo es es wirft.

Antwort

0

Ein ObjC NSException eine C# Managed Wrapper-Klasse: MonoTouchException

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

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

Dies ist ein Wrapper-Klasse für die Objective-C NSException Klasse.

+0

Hey, das hat leider nicht funktioniert.aber ich benutze auch xamarion ios nicht klassisch monotouch, also habe ich nur Zugriff auf https://developer.xamarin.com/api/type/Foundation.MonoTouchException/ – user6430870

+0

es behauptet, dass tio das selbe ist, aber vielleicht funktioniert es nicht das selbe. – user6430870