エラーを処理する
両SDKの違いを確認しStarXpand SDKへの移行を行ってください。
StarPRNT SDK
各APIからNSError型のエラーがthrowされます。エラーの種類を示す値は、NSError.codeに格納されます。
以下のようにcatchする際にエラーをNSError型に変換し、codeプロパティを参照してエラーの種類を特定します。
import StarIO
import StarIO_Extension
do {
// 略
var printerStatus = StarPrinterStatus_2()
try port.beginCheckedBlock(starPrinterStatus: &printerStatus, level: 2)
// 略
} catch let error as NSError {
code = error.code
}
StarXpand SDK
エラーはすべて列挙型StarIO10Errorで定義されており、各APIでエラーが発生した時に対応するエラーがthrowされます。
StarIO10Errorの列挙子と、そのerrorCodeを確認することで、エラーの種類を特定します。
エラーをcatchする際に、以下のようにmessageとerrorCodeを取り出してください。
エラーの具体的な種類を特定することができます。
import StarIO10
do {
try manager?.startDiscovery()
} catch StarIO10Error.illegalDeviceState(message: let message, errorCode: let errorCode) {
switch errorCode {
case StarIO10ErrorCode.bluetoothUnavailable:
// Bluetooth Unavailable
case StarIO10ErrorCode.networkUnavailable:
// Network Unavailable
default:
break
}
} catch {
print("Error: \(error)")
}
両SDKの比較
| StarPRNT SDK | StarXpand SDK | |
|---|---|---|
| エラーの型 | NSError | StarIO10Error |
| エラーの種類の特定方法 | code | messageとerrorCode |
各APIのStarPRNT SDKとStarXpand SDKへの対応状況は、対応API一覧をご確認ください。
両SDKの違いを確認しStarXpand SDKへの移行を行ってください。
StarPRNT SDK
各APIからStarIOPortException型の例外がthrowされます。エラーの種類を示す値はStarIOPortException.errorCodeに格納されます。
以下のようにcatchする際にエラーのerrorCodeプロパティを参照してエラーの種類を特定します。
import com.starmicronics.stario.StarIOPort
import com.starmicronics.stario.StarIOPortException
try {
// 略
val status = StarPrinterStatus()
port.beginCheckedBlock(status, 2)
// 略
} catch (e: StarIOPortException) {
val code = e.errorCode
}
StarXpand SDK
エラーはすべてStarIO10Exceptionのサブクラスとして定義されており、各APIでエラーが発生した時に対応する例外がthrowされます。
StarIO10Exceptionのサブクラスと、そのerrorCodeを確認することで、エラーの種類を特定します。
エラーをcatchする際に、以下のようにmessageとerrorCodeを取り出すようにしてください。
下記のようにして、エラーの具体的な種類を特定することができます。
import com.starmicronics.stario10.StarIO10IllegalDeviceStateException
import com.starmicronics.stario10.StarIO10ErrorCode
try {
manager.startDiscovery()
} catch (e: StarIO10IllegalDeviceStateException) {
when (e.errorCode) {
StarIO10ErrorCode.BluetoothUnavailable -> {
// Bluetooth Unavailable
}
StarIO10ErrorCode.NetworkUnavailable -> {
// Network Unavailable
}
else -> {}
}
} catch (e: Exception) {
Log.e(TAG, "Error: ${e.message}")
}
両SDKの比較
| StarPRNT SDK | StarXpand SDK | |
|---|---|---|
| エラーの型 | StarIOPortException | StarIO10Exception(サブクラス) |
| エラーの種類の特定方法 | errorCode | サブクラスの型とerrorCode |
各APIのStarPRNT SDKとStarXpand SDKへの対応状況は、対応API一覧をご確認ください。

