Bagikan melalui


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 blok Try 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, Option Strict digunakan untuk membatasi logika tambahan yang disediakan oleh 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 beberapa cara berbeda untuk mengonfigurasi peringatan: Anda dapat mengonfigurasinya dengan menggunakan Project Designer, Anda dapat menggunakan opsi pengkompilasi /warnaserror dan /nowarn, atau mengedit file proyekvbproj dan menggunakan properti MSBuild NoWarn. Untuk menggunakan properti MSBuild, lihat Menyembunyikan peringatan khusus untuk seluruh proyek Visual Basic.

Pengalaman Project Designer berbeda tergantung apakah Anda bekerja dengan proyek .NET Framework atau proyek .NET Core (atau .NET 5 atau yang lebih baru).

Dalam proyek .NET Core (atau .NET 5 dan yang lebih baru), bagian Kompilasi dari Project Designer berisi pengaturan yang disebut Tingkat keparahan peringatan yang dapat Anda gunakan untuk menonaktifkan semua peringatan, mempromosikan semua peringatan ke kesalahan, atau Anda dapat memilih untuk mengontrol setiap kategori peringatan secara terpisah (default). Pengaturan kategori peringatan muncul di area yang sama di Perancang Proyek .

Di proyek .NET Framework, di tab KompilasiProject Designer , 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 diubah menjadi kesalahan atau tetap sebagai peringatan sesuai keinginan dalam tabel yang ditampilkan.

Tab Kompilasi dari halaman Project Designer 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 dalam tabel yang ditampilkan dapat diatur menjadi kesalahan atau peringatan sesuai keinginan.

Saat Opsi Ketat diatur ke Nonaktif, opsi Peringatan terkait tidak dapat diperlakukan secara independen satu sama lain. Ketika Ketat Opsi diatur ke Pada, peringatan terkait diperlakukan sebagai kesalahan, apa pun statusnya. Saat Option Strict diatur ke Kustom dengan menentukan /optionstrict:custom di pengompilasi baris perintah, Peringatan Option Strict dapat diaktifkan atau dinonaktifkan secara independen.

Opsi /warnaserror baris perintah 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+ atau /warnaserror Perlakukan semua peringatan sebagai kesalahan
/warnsaserror- Jangan perlakukan peringatan sebagai kesalahan. Pengaturan 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 dipisahkan dengan 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 adalah nonaktif.

ID: 42016

Pemanggilan metode terikat terlambat dan peringatan resolusi kelebihan beban

Dihasilkan untuk instans pengikatan terlambat. Pengaturan default untuk proyek baru secara otomatis nonaktif.

ID: 42017

Peringatan untuk Operan dengan Tipe 'Objek'

Dihasilkan ketika operand tipe Object muncul yang akan menyebabkan kesalahan dengan Option Strict On . Default untuk proyek baru adalah aktif.

ID: 42018 dan 42019

Deklarasi memerlukan peringatan klausul 'Sebagai'

Dihasilkan ketika variabel, fungsi, atau deklarasi properti yang tidak memiliki klausa As akan membuat kesalahan dengan Opsi Ketat Pada. Variabel yang tidak memiliki jenis yang ditetapkan untuk mereka diasumsikan sebagai jenis Object. Pengaturan awal untuk proyek baru adalah aktif.

ID: 42020 (deklarasi variabel), 42021 (deklarasi fungsi), dan 42022 (deklarasi properti).

Peringatan kemungkinan pengecualian referensi null

Dihasilkan ketika variabel digunakan sebelum ditetapkan nilai. Pengaturan default untuk proyek baru adalah aktif.

ID: 42104, 42030

Peringatan variabel lokal yang tidak digunakan

Dihasilkan ketika variabel lokal dideklarasikan tetapi tidak pernah dirujuk. Pengaturan bawaan aktif.

ID: 42024

Akses anggota bersama melalui peringatan variabel instans

Dihasilkan ketika mengakses anggota bersama melalui instans, yang mungkin memiliki efek samping, atau ketika mengakses anggota bersama melalui variabel instans yang bukan merupakan sisi kanan dari sebuah ekspresi atau sedang diteruskan sebagai parameter. Secara default untuk proyek baru adalah aktif.

ID: 42025

Peringatan terkait akses operator atau properti yang bersifat rekursif

Dihasilkan ketika isi suatu rutin menggunakan operator atau properti yang sama di mana ia didefinisikan. Pengaturan bawaan untuk proyek baru adalah 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 . Pengaturan awal diaktifkan untuk proyek baru.

ID: 42105 (fungsi), 42016 (operator)

Pengubah kelebihan beban yang digunakan dalam peringatan modul

Dihasilkan saat Overloads digunakan dalam Module. Setelan standar untuk proyek baru adalah aktif.

ID: 42028

Peringatan blok tangkapan duplikat atau tumpang tindih

Dihasilkan ketika blok Catch tidak pernah tercapai karena hubungannya dengan blok Catch lain yang telah ditentukan. Proyek baru secara default aktif.

ID: 42029, 42031