Dalam pemrograman komputer, apa perbedaan antara pesan peringatan dan pesan kesalahan?


Jawaban 1:

Pesan kesalahan (dari kompiler) menunjukkan masalah dengan teks program yang sangat parah sehingga mencegah pembuatan kode yang mungkin sesuai dengan yang diinginkan oleh programmer.

Pesan peringatan (dari kompiler) menunjukkan masalah yang melibatkan praktik buruk atau kecerobohan, yang tidak begitu parah untuk mencegah pembuatan kode, tetapi mungkin menyiratkan bahwa kode tersebut tidak melakukan apa yang diinginkan oleh pemrogram.

Saya menetapkan bendera di kompiler saya untuk mengubah semua pesan peringatan menjadi pesan kesalahan, jadi kompiler tidak mencoba membangun gambar yang dapat dieksekusi yang dianggap rusak.


Jawaban 2:

Saya berasumsi Anda berbicara tentang selama kompilasi.

Kesalahan adalah di mana Anda telah menggunakan bahasa yang salah, dan kompiler tidak dapat memahami apa yang Anda tulis, dan tidak akan mencoba menggunakan apa yang Anda minta. Ini mencegah GIGO.

Peringatan adalah tempat Anda mungkin menyalahgunakan bahasa. Kompiler dapat menggunakan kode seperti yang tertulis, tetapi dapat melihat bahwa Anda telah memperkenalkan kelemahan dalam kode Anda, dan itu mungkin tidak berperilaku seperti yang Anda inginkan, tetapi akan berperilaku seperti yang tertulis. Anda mungkin menggunakan "trik yang rapi", tetapi trik yang rapi sering kali mengganggu Anda di tempat yang menyakitkan.

Anda sering menemukan opsi kompiler, digunakan dalam rilis rilis, di mana peringatan diperlakukan sebagai kesalahan, dan harus diselesaikan sebelum Anda dapat melepaskan kode. Selama debug dan pengembangan awal, peringatan dapat ditoleransi untuk dieksekusi, jadi Anda mungkin tidak akan bersikap resrtiktif.

Misalnya kalimatnya

panci pemanggang minyak

tidak ada artinya, dan tidak akan apa-apa dan mendapatkan kesalahan, kalimat itu bukan kalimat. Namun

tuangkan minyak ke dalam pemanggang

Akan menyebabkan peringatan dinaikkan. Instruksi jelas dan sederhana, dan dapat ditindaklanjuti, tetapi karena kita tahu minyak harus dimasukkan ke dalam wadah (atau mungkin tiriskan) dan pemanggang roti bukanlah wadah (atau saluran air) kami akan memberikan peringatan. Jika Anda mengatakan kami harus tetap melakukannya, jalankan programnya, kami akan dengan patuh menuangkan minyak ke dalam pemanggang Anda. Anda sekarang memiliki penghitung yang berantakan, dan pemanggang roti yang tidak boleh Anda gunakan. Hasilnya bukan apa yang Anda harapkan, tetapi tindakan itu mungkin.

Tentu saja, beberapa bahasa memiliki kompiler yang akan melihat jenis yang salah dan memberi Anda kesalahan, bukan peringatan.


Jawaban 3:

Jawaban lain berbicara tentang bahasa yang dikompilasi tetapi perbedaan antara kesalahan dan peringatan terlihat di luar domain itu. Secara umum kesalahan adalah masalah dengan program yang cukup signifikan sehingga program tidak boleh dilanjutkan, sedangkan peringatan adalah sesuatu yang mungkin tidak berbahaya tetapi Anda mungkin ingin memperhatikan. Ini praktik yang baik untuk memiliki kebijakan 'tidak ada peringatan' ketika mengembangkan kode. Mereka membingungkan dan setiap kontributor baru pada basis kode perlu memahami mengapa peringatan itu ada.