Throwable Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 |
| 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 |
Bidang
| Nama | Deskripsi |
|---|---|
| is_generated |
Menunjukkan apakah dapat dilemparkan ini dihasilkan oleh pengikatan. |
Properti
| Nama | Deskripsi |
|---|---|
| Cause |
Mengembalikan penyebab ini dapat dilemparkan atau |
| Class |
Mendapatkan kelas runtime ini dapat dilemparkan. |
| Handle |
Handel ke instans Android yang mendasar. |
| JavaStackTrace |
Kelas |
| JniIdentityHashCode |
Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop. |
| JniManagedPeerState |
Kelas |
| 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 |
| Dispose() |
Merilis sumber daya yang dipegang oleh rekan Java ini. |
| Dispose(Boolean) |
Merilis sumber daya yang dipegang oleh rekan Java ini. |
| DisposeUnlessReferenced() |
Kelas |
| Equals(Object) |
Kelas |
| FillInStackTrace() |
Mengisi jejak tumpukan eksekusi. |
| Finalize() |
Merilis sumber daya sebelum rekan Java ini diklaim kembali. |
| FromException(Exception) | |
| GetHashCode() |
Kelas |
| GetStackTrace() |
Menyediakan akses terprogram ke informasi pelacakan tumpukan yang dicetak oleh |
| GetSuppressed() |
Mengembalikan array yang berisi semua pengecualian yang ditekan, biasanya oleh |
| 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 |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Kelas |
| SetStackTrace(StackTraceElement[]) |
Mengatur elemen pelacakan tumpukan yang akan dikembalikan oleh |
| 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 |
| IJavaPeerable.Finalized() |
Kelas |
| IJavaPeerable.JniObjectReferenceControlBlock |
Kelas |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Kelas |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Kelas |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Kelas |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Kelas |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |