Mengonfigurasi peringatan di Visual Basic
Pengkompilasi Visual Basic menyertakan serangkaian peringatan tentang kode yang dapat menyebabkan kesalahan run-time. Anda dapat menggunakan informasi tersebut untuk menulis kode yang lebih bersih, lebih cepat, lebih baik dengan lebih sedikit bug. Misalnya, pengkompilasi akan menghasilkan peringatan ketika pengguna mencoba memanggil anggota variabel objek yang tidak ditetapkan, mengembalikan dari fungsi tanpa mengatur nilai pengembalian, atau menjalankan Try
blok dengan kesalahan dalam logika untuk menangkap pengecualian.
Terkadang pengkompilasi memberikan logika tambahan atas nama pengguna sehingga pengguna dapat fokus pada tugas yang ditangani, daripada mengantisipasi kemungkinan kesalahan. Di versi Visual Basic sebelumnya, Opsi Ketat digunakan untuk membatasi logika tambahan yang disediakan pengkompilasi Visual Basic. Mengonfigurasi peringatan memungkinkan Anda membatasi logika ini dengan cara yang lebih terperinci, pada tingkat peringatan individu.
Anda mungkin ingin menyesuaikan proyek Anda dan menonaktifkan beberapa peringatan yang tidak berkaitan dengan aplikasi Anda sambil mengubah peringatan lain menjadi kesalahan. Halaman ini menjelaskan cara mengaktifkan dan menonaktifkan peringatan individual.
Menonaktifkan dan mengaktifkan peringatan
Ada dua cara berbeda untuk mengonfigurasi peringatan: Anda dapat mengonfigurasinya menggunakan Project Designer, atau Anda dapat menggunakan opsi /warnaserror dan /nowarn compiler.
Tab Kompilasi halaman Perancang Proyek memungkinkan Anda mengaktifkan dan menonaktifkan peringatan. Pilih kotak centang Nonaktifkan Semua Peringatan untuk menonaktifkan semua peringatan; pilih Perlakukan Semua Peringatan sebagai Kesalahan untuk memperlakukan semua peringatan sebagai kesalahan. Beberapa peringatan individual dapat dialihkan sebagai kesalahan atau peringatan seperti yang diinginkan dalam tabel yang ditampilkan.
Saat Opsi Ketat diatur ke Nonaktif, Opsi Peringatan terkait ketat tidak dapat diperlakukan secara independen satu sama lain. Saat Opsi Ketat diatur ke Aktif, peringatan terkait diperlakukan sebagai kesalahan, apa pun statusnya. Saat Opsi Ketat diatur ke Kustom dengan menentukan /optionstrict:custom
di pengkompilasi baris perintah, Peringatan ketat Opsi dapat diaktifkan atau dinonaktifkan secara independen.
Opsi baris perintah /warnaserror dari pengkompilasi juga dapat digunakan untuk menentukan apakah peringatan diperlakukan sebagai kesalahan. Anda dapat menambahkan daftar yang dibatasi koma ke opsi ini untuk menentukan peringatan mana yang harus diperlakukan sebagai kesalahan atau peringatan dengan menggunakan + atau -. Tabel berikut merinci opsi yang mungkin.
Opsi baris perintah | Menentukan |
---|---|
/warnaserror+ |
Perlakukan semua peringatan sebagai kesalahan |
/warnsaserror - |
Jangan perlakukan sebagai peringatan sebagai kesalahan. Ini adalah default. |
/warnaserror+:<warning list > |
Perlakukan peringatan tertentu sebagai kesalahan, yang tercantum oleh nomor ID kesalahannya dalam daftar yang dibatasi koma r. |
/warnaserror-:<warning list> |
Jangan perlakukan peringatan tertentu sebagai kesalahan, yang tercantum oleh nomor ID kesalahannya dalam daftar yang dibatasi koma. |
/nowarn |
Jangan laporkan peringatan. |
/nowarn:<warning list> |
Jangan laporkan peringatan yang ditentukan, yang dicantumkan oleh nomor ID kesalahannya dalam daftar yang dibatasi koma. |
Daftar peringatan berisi nomor ID kesalahan dari peringatan yang harus diperlakukan sebagai kesalahan, yang dapat digunakan dengan opsi baris perintah untuk mengaktifkan atau menonaktifkan peringatan tertentu. Jika daftar peringatan berisi nomor yang tidak valid, kesalahan akan dilaporkan.
Contoh
Tabel contoh argumen baris perintah ini menjelaskan apa yang dilakukan setiap argumen.
Argumen | Deskripsi |
---|---|
vbc /warnaserror |
Menentukan bahwa semua peringatan harus diperlakukan sebagai kesalahan. |
vbc /warnaserror:42024 |
Menentukan bahwa peringatan 42024 harus diperlakukan sebagai kesalahan. |
vbc /warnaserror:42024,42025 |
Menentukan bahwa peringatan 42024 dan 42025 harus diperlakukan sebagai kesalahan. |
vbc /nowarn |
Menentukan bahwa tidak ada peringatan yang harus dilaporkan. |
vbc /nowarn:42024 |
Menentukan bahwa peringatan 42024 tidak boleh dilaporkan. |
vbc /nowarn:42024,42025 |
Menentukan bahwa peringatan 42024 dan 42025 tidak boleh dilaporkan. |
Jenis peringatan
Berikut ini adalah daftar peringatan yang mungkin ingin Anda perlakukan sebagai kesalahan.
Peringatan konversi implisit
Dihasilkan untuk instans konversi implisit. Mereka tidak menyertakan konversi implisit dari jenis numerik intrinsik ke string saat menggunakan &
operator. Default untuk proyek baru nonaktif.
ID: 42016
Pemanggilan metode terikat terlambat dan peringatan resolusi kelebihan beban
Dihasilkan untuk instans pengikatan terlambat. Default untuk proyek baru nonaktif.
ID: 42017
Operan tipe peringatan 'Objek'
Dihasilkan ketika operand jenis Object
terjadi yang akan membuat kesalahan dengan Opsi Strict On. Default untuk proyek baru aktif.
ID: 42018 dan 42019
Deklarasi memerlukan peringatan klausul 'Sebagai'
Dihasilkan ketika variabel, fungsi, atau deklarasi properti yang As
tidak memiliki klausul akan membuat kesalahan dengan Opsi Strict On. Variabel yang tidak memiliki jenis yang ditetapkan untuk mereka diasumsikan sebagai jenis Object
. Default untuk proyek baru aktif.
ID: 42020 (deklarasi variabel), 42021 (deklarasi fungsi), dan 42022 (deklarasi properti).
Kemungkinan peringatan pengecualian referensi null
Dihasilkan ketika variabel digunakan sebelum ditetapkan nilai. Default untuk proyek baru aktif.
ID: 42104, 42030
Peringatan variabel lokal yang tidak digunakan
Dihasilkan ketika variabel lokal dideklarasikan tetapi tidak pernah dirujuk. Defaultnya aktif.
ID: 42024
Akses anggota bersama melalui peringatan variabel instans
Dihasilkan saat mengakses anggota bersama melalui instans mungkin memiliki efek samping, atau saat mengakses anggota bersama melalui variabel instans bukanlah sisi kanan ekspresi atau sedang diteruskan sebagai parameter. Default untuk proyek baru aktif.
ID: 42025
Peringatan akses operator rekursif atau properti
Dihasilkan ketika isi rutin menggunakan operator atau properti yang sama tempatnya didefinisikan. Default untuk proyek baru aktif.
ID: 42004 (operator), 42026 (properti)
Fungsi atau operator tanpa peringatan nilai pengembalian
Dihasilkan ketika fungsi atau operator tidak memiliki nilai pengembalian yang ditentukan. Ini termasuk menghilangkan Set
ke variabel lokal implisit dengan nama yang sama dengan fungsi . Default untuk proyek baru aktif.
ID: 42105 (fungsi), 42016 (operator)
Pengubah kelebihan beban yang digunakan dalam peringatan modul
Dihasilkan ketika Overloads
digunakan dalam Module
. Default untuk proyek baru aktif.
ID: 42028
Peringatan blok tangkapan duplikat atau tumpang tindih
Dihasilkan ketika Catch
blok tidak pernah tercapai karena hubungannya dengan blok lain Catch
yang telah ditentukan. Default untuk proyek baru aktif.
ID: 42029, 42031