Star Micronics SDK를 내 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);
}
목적-C 구현을 원래의 C 라이브러리는 PortException 예외를 포착합니다.
@try
{
[starPort writePort:dataToSentToPrinter :totalAmountWritten :remaining];
}
@catch (PortException *exception)
{
//...
}
@finally
{
//...
}
Xamarin App에서 동일한 예외를 어떻게 잡아 예외를 처리하고 응용 프로그램이 중단되는 것을 막을 수 있습니까?
감사합니다. Rolf. writePort 메소드는 실제로 액세스가 필요한 int를 리턴합니다. 이 상황을 어떻게 처리할까요? – Joseph
함수 시그니처에 'out'매개 변수를 추가하여 오류 코드를 반환 할 수도 있습니다. –