2016-07-05 1 views
1

J'ai essayé d'attraper un NSException levé par CancelPeripheralConnection, mais il continue à dire qu'il doit être dérivé de 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"); 
} 

Je continue à obtenir ce qui suit dans ma fenêtre de sortie quand il plante 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

ma question est de savoir comment suis-je censé attraper le NSException que je ne peux pas sembler trouver une documentation où les gens attrapent en l'endroit où il le jette.

Répondre

0

Un ObjC NSException ont une classe wrapper managée C#: MonoTouchException

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

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

C'est une classe wrapper pour la classe Objective-C NSException.

+0

Hey, cela n'a pas fonctionné malheureusement. Mais aussi j'utilise xamarion ios pas monotouch classique donc je n'ai accès qu'à https://developer.xamarin.com/api/type/Foundation.MonoTouchException/ – user6430870

+0

il prétend que c'est la même chose mais peut-être que ça ne marche pas de la même façon. – user6430870