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