Throwable Kelas

Definisi

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

[Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)]
public class Throwable : Java.Interop.JavaException, IDisposable, Java.IO.ISerializable
[<Android.Runtime.Register("java/lang/Throwable", DoNotGenerateAcw=true)>]
type Throwable = class
    inherit JavaException
    interface IJavaObject
    interface IDisposable
    interface ISerializable
    interface IJavaPeerable
Warisan
Turunan
Atribut
Penerapan

Keterangan

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java. Hanya objek yang merupakan instans kelas ini (atau salah satu subkelasnya) yang dilemparkan oleh Java Virtual Machine atau dapat dilemparkan oleh pernyataan Javathrow. Demikian pula, hanya kelas ini atau salah satu subkelasnya yang dapat menjadi jenis argumen dalam catch klausa.

Untuk tujuan pemeriksaan pengecualian waktu kompilasi, Throwable dan subkelas Throwable apa pun yang tidak juga merupakan subkelas dari salah satu RuntimeException atau Error dianggap sebagai pengecualian yang diperiksa.

Instans dari dua subkelas, java.lang.Error dan java.lang.Exception, secara konvensional digunakan untuk menunjukkan bahwa situasi luar biasa telah terjadi. Biasanya, instans ini baru dibuat dalam konteks situasi yang luar biasa sehingga menyertakan informasi yang relevan (seperti data pelacakan tumpukan).

Yang dapat dilemparkan berisi rekam jepret tumpukan eksekusi utasnya pada saat dibuat. Ini juga dapat berisi string pesan yang memberikan informasi lebih lanjut tentang kesalahan tersebut. Seiring waktu, dapat dilemparkan#addSuppressed menekan throwable lainnya agar tidak disebarkan. Akhirnya, yang dapat dilemparkan juga dapat mengandung penyebab: yang dapat dilemparkan lain yang menyebabkan ini dapat dibuang. Rekaman informasi penyebab ini disebut sebagai fasilitas pengecualian berantai , karena penyebabnya dapat, itu sendiri, memiliki penyebab, dan sebagainya, yang mengarah ke "rantai" pengecualian, masing-masing disebabkan oleh yang lain.

Salah satu alasan bahwa yang dapat dilemparkan mungkin memiliki penyebabnya adalah bahwa kelas yang melemparkannya dibangun di atas abstraksi berlapis yang lebih rendah, dan operasi pada lapisan atas gagal karena kegagalan di lapisan bawah. Akan menjadi desain yang buruk untuk membiarkan yang dilemparkan oleh lapisan bawah menyebar ke luar, karena umumnya tidak terkait dengan abstraksi yang disediakan oleh lapisan atas. Selanjutnya, melakukannya akan mengikat API lapisan atas ke detail implementasinya, dengan asumsi pengecualian lapisan bawah adalah pengecualian yang diperiksa. Melempar "pengecualian yang dibungkus" (yaitu, pengecualian yang berisi penyebab) memungkinkan lapisan atas untuk mengomunikasikan detail kegagalan kepada pemanggilnya tanpa menimbulkan salah satu kekurangan ini. Ini mempertahankan fleksibilitas untuk mengubah implementasi lapisan atas tanpa mengubah API-nya (khususnya, serangkaian pengecualian yang dilemparkan oleh metodenya).

Alasan kedua bahwa yang dapat dilemparkan mungkin memiliki penyebabnya adalah bahwa metode yang melemparkannya harus sesuai dengan antarmuka tujuan umum yang tidak mengizinkan metode untuk melemparkan penyebab secara langsung. Misalnya, koleksi persisten sesuai dengan java.util.Collection Collection antarmuka, dan kegigihannya diimplementasikan di atas java.io. Misalkan internal add metode dapat melempar java.io.IOException IOException. Implementasi dapat mengkomunikasikan detail IOException kepada pemanggilnya sambil menyesuaikan Collection dengan antarmuka dengan membungkus IOException dalam pengecualian yang tidak dicentang yang sesuai. (Spesifikasi untuk koleksi persisten harus menunjukkan bahwa ia mampu melemparkan pengecualian tersebut.)

Penyebabnya dapat dikaitkan dengan yang dapat dilemparkan dengan dua cara: melalui konstruktor yang mengambil penyebabnya sebagai argumen, atau melalui #initCause(Throwable) metode . Kelas baru yang dapat dilemparkan yang ingin memungkinkan penyebab dikaitkan dengan mereka harus menyediakan konstruktor yang mengambil penyebab dan mendelegasikan (mungkin secara tidak langsung) ke salah Throwable satu konstruktor yang mengambil penyebab.

initCause Karena metode ini bersifat publik, ini memungkinkan penyebab untuk dikaitkan dengan apa pun yang dapat dilemparkan, bahkan "warisan yang dapat dilemparkan" yang implementasinya mendahului penambahan mekanisme penautan pengecualian ke Throwable.

Menurut konvensi, kelas Throwable dan subkelasnya memiliki dua konstruktor, satu yang tidak mengambil argumen dan yang mengambil String argumen yang dapat digunakan untuk menghasilkan pesan detail. Selanjutnya, subkelas yang mungkin memiliki penyebab yang terkait dengan mereka harus memiliki dua konstruktor lagi, satu yang mengambil Throwable (penyebab), dan yang mengambil String (pesan detail) dan Throwable (penyebabnya).

Ditambahkan dalam 1.0.

Java dokumentasi untuk java.lang.Throwable.

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Konstruktor

Nama Deskripsi
Throwable()

Membangun yang baru dapat dilemparkan dengan null sebagai pesan detailnya.

Throwable(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

Throwable(String, Throwable, Boolean, Boolean)

Membuat yang baru dapat dilemparkan dengan pesan detail yang ditentukan, penyebab, #addSuppressed supresi diaktifkan atau dinonaktifkan, dan pelacakan tumpukan bisa-tulis diaktifkan atau dinonaktifkan.

Throwable(String, Throwable)

Membuat yang baru dapat dilemparkan dengan pesan dan penyebab detail yang ditentukan.

Throwable(String)

Membuat yang baru dapat dilemparkan dengan pesan detail yang ditentukan.

Throwable(Throwable)

Membangun yang baru dapat dilemparkan dengan penyebab yang ditentukan dan pesan (cause==null ? null : cause.toString()) detail (yang biasanya berisi kelas dan pesan causedetail ).

Bidang

Nama Deskripsi
is_generated

Menunjukkan apakah dapat dilemparkan ini dihasilkan oleh pengikatan.

Properti

Nama Deskripsi
Cause

Mengembalikan penyebab ini dapat dilemparkan atau null jika penyebabnya tidak ada atau tidak diketahui.

Class

Mendapatkan kelas runtime ini dapat dilemparkan.

Handle

Handel ke instans Android yang mendasar.

JavaStackTrace

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
JniIdentityHashCode

Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop.

JniManagedPeerState

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
JniPeerMembers

Mendapatkan metadata JNI yang digunakan untuk memanggil anggota peer Java ini.

LocalizedMessage

Membuat deskripsi yang dilokalkan dari yang dapat dilemparkan ini.

Message

Mengembalikan string pesan detail dari yang dapat dilemparkan ini.

PeerReference

Mendapatkan referensi objek JNI untuk peer Java ini.

StackTrace

Mendapatkan representasi string dari jejak tumpukan untuk yang dapat dilemparkan ini.

ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Metode

Nama Deskripsi
AddSuppressed(Throwable)

Menambahkan pengecualian yang ditentukan ke pengecualian yang ditekan untuk memberikan pengecualian ini.

Construct(JniObjectReference, JniObjectReferenceOptions)

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
Dispose()

Merilis sumber daya yang dipegang oleh rekan Java ini.

Dispose(Boolean)

Merilis sumber daya yang dipegang oleh rekan Java ini.

DisposeUnlessReferenced()

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
Equals(Object)

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
FillInStackTrace()

Mengisi jejak tumpukan eksekusi.

Finalize()

Merilis sumber daya sebelum rekan Java ini diklaim kembali.

FromException(Exception)

Mengonversi menjadi ExceptionThrowable.

GetHashCode()

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
GetStackTrace()

Menyediakan akses terprogram ke informasi pelacakan tumpukan yang dicetak oleh #printStackTrace().

GetSuppressed()

Mengembalikan array yang berisi semua pengecualian yang ditekan, biasanya oleh trypernyataan -with-resources, untuk memberikan pengecualian ini.

InitCause(Throwable)

Menginisialisasi penyebab ini dapat dilemparkan ke nilai yang ditentukan.

PrintStackTrace()

Mencetak ini dapat dilemparkan dan lacak baliknya ke aliran kesalahan standar.

PrintStackTrace(PrintStream)

Mencetak ini dapat dilemparkan dan lacak baliknya ke aliran cetak yang ditentukan.

PrintStackTrace(PrintWriter)

Mencetak yang dapat dilemparkan ini dan lacak baliknya ke penulis cetak yang ditentukan.

SetHandle(IntPtr, JniHandleOwnership)

Mengatur properti Handle.

SetJavaStackTrace(JniObjectReference)

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
SetStackTrace(StackTraceElement[])

Mengatur elemen pelacakan tumpukan yang akan dikembalikan oleh #getStackTrace() dan dicetak oleh #printStackTrace() dan metode terkait.

ToException(Throwable)

Mengembalikan pengecualian terkelola yang sesuai dengan Java yang ditentukan yang dapat dilemparkan.

ToString()

Mengonversi nilai ini menjadi string.

UnregisterFromRuntime()

Membatalkan pendaftaran peer Java ini dari runtime interop.

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IJavaPeerable.Disposed()

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
IJavaPeerable.Finalized()

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
IJavaPeerable.JniObjectReferenceControlBlock

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)
IJavaPeerable.SetPeerReference(JniObjectReference)

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

(Diperoleh dari JavaException)

Metode Ekstensi

Nama Deskripsi
GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

Kelas Throwable adalah superkelas dari semua kesalahan dan pengecualian dalam bahasa Java.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk