どうエラーを返すか、の前に、もうちょっとチェック例外のことを考えたい。
今作ろうとしているのは、NfcAクラスに対するMifareUltralightクラスのようなもので、そのFeliCa Lite版だ。
- close
- connect
- get
- getMaxTransceiveLength
- getTag
- getTimeout
- getType
- isConnected
- readPages
- setTimeout
- transceive
- writePage
赤文字が、追加されたメソッド。
NfcAにあるgetAtqa()なんかがないのは、NfcAを継承してないから。
TagTechnology > BasicTagTechnology、という継承になってるんだけど、BasicTagTechnologyはpublicがついてないから、私から使うことができない(のよね? 勝手にandroid.nfc.techなんてパッケージ名付けてもだめだと思ってるが)。
私が追加したいのも、こういうやつで、FeliCa Liteのブロックにアクセスする処理だ。
迷っているのは、こういう内部のAPIを使って機能を実現するやつ。
transceive()を使うけど、それはIOExceptionを投げる。
じゃあ、使ったAPIもIOExceptionを投げた方がよいか、隠蔽した方がよいか。
MifareUltralightクラスは、ほぼそのままにしている。
transceive()の返すIOExceptionもあるが、checkConnected()の返すIllegalStateExceptionもそのまま。
実行時例外はスルーして上まで投げて、チェック例外はやった方がよいなら自分でチェックするし、そうじゃないと思ったらthrowsして上に投げる、という判断なのかな。
圧倒的に、Javaソースを眺めている経験値が足りないですわ-。
今はAndroidのNFCのソースしか見てないという、視野が非常に狭い状況だから、またどっかで混乱するんだろうな。
まあ、足場がないと混乱もできないから、以前よりはよくなったと前向きに考えよう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。