Я связал SDK Star Micronics с моим приложением Xamarin. Мое приложение случайно падает, хотя со следующей ошибкой:Исключение из связанной библиотеки
SIGABRT - 'PortException', reason: 'Native WritePort failed'
Мой связанный метод выглядит следующим образом:
[BaseType (typeof (NSObject))]
public partial interface SMPort {
//...
[Export ("writePort:::")]
Int32 WritePort (IntPtr writeBuffer, int offSet, int size);
}
И я называю это с помощью:
private static void Print(NSMutableData commandsToPrint) {
try {
//...
int count = printerPort.WritePort (test, 0, Convert.ToInt32(dataBytes.Length));
} catch (Exception e) {
//...
} finally {
//Release the port
SMPort.ReleasePort (printerPort);
}
Реализация Objective-C из оригинальная библиотека C улавливает исключение PortException:
@try
{
[starPort writePort:dataToSentToPrinter :totalAmountWritten :remaining];
}
@catch (PortException *exception)
{
//...
}
@finally
{
//...
}
Как я могу получить одно и то же исключение в своем приложении Xamarin, поэтому я могу обработать исключение и остановить приложение от сбоя?
Thanks Rolf. Метод writePort фактически возвращает int, к которому мне нужен доступ. Как бы я справился с этой ситуацией? – Joseph
Вы можете добавить параметр 'out' в подпись функции, чтобы вернуть код ошибки. –