Key*_*ari 1 android exception nfc
我正面临着java.lang.NoSuchMethodError: android.nfc.NdefRecord.createUri这段代码的异常:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext());
try {
if (mNfcAdapter == null) {
} else {
NdefRecord uriRecord = NdefRecord.createUri(someUri);
NdefMessage msg = new NdefMessage(new NdefRecord[] {uriRecord});
mNfcAdapter.setNdefPushMessage(msg, this);
}
} catch (Exception e) {
Log.e(getClass().getSimpleName(), "initNfcNdefMessage()", e);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,initNfcNdefMessage 不会在堆栈跟踪中打印.这怎么可能?
因为java.lang.NoSuchMethodError不是从Exception类派生的.
您试图通过Exception对象捕获它,但它最初是throwable
检查一下
java.lang.Object
extended byjava.lang.Throwable
extended byjava.lang.Error
extended byjava.lang.LinkageError
extended byjava.lang.IncompatibleClassChangeError
extended byjava.lang.NoSuchMethodError
Run Code Online (Sandbox Code Playgroud)
Java有多个异常层次结构.
您的问题是java.lang.NoSuchMethodError不是从java.lang.Exception派生的,因此您无法通过捕获异常来捕获NoSuchMethodError.您需要显式捕获NoSuchMethodError,否则您可能会捕获Throwable.
请参阅有关有效Java异常的文章,以了解有关已检查异常的更多信息.
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |