Error Message Yang Lebih Baik pada Rubinius
- Categories:
- ruby
Pesan yang ditampilkan saat terjadi syntax errors merupakan bagian kehidupan dari programmer saat membangun sebuah aplikasi. Jika hal tersebut sulit disampaikan kepada programmer, seberapapun tinggi kemampuan programmer tersebut, maka akan membutuhkan waktu yang lama dalam melakukan debugging.
Evan Phoenix, yang merupakan pencipta Rubinius, menjelaskan bahwa parser MRI yang merupakan intepreter default untuk Ruby memiliki message yang cukup sulit untuk dimengerti. Salah satunya adalah ketika lupa menulis ‘end’ dalam sebuah method atau class, maka akan muncul pesan unexpected $end, expecting kEND
.
Berikut ini adalah contoh yang dapat memunculkan pesan error diatas.
Mungkin contoh diatas mudah diperbaiki, namun jika dalam membangun sebuah program yang memiliki baris kode lebih dari seribu dan sangat kompleks, tentu error tersebut lebih sulit ditemukan. Pada Rubinius, pesan tersebut diubah sehingga akan membuat programmer lebih mudah dalam melakukan debugging. Pada pesan syntax error, unexpected $end, expecting kEND
diubah menjadi seperti dibawah ini pada contoh kasus diatas missing ‘end’ for ‘class’ started on line 1
.
Pesan error tersebut menjelaskan bahwa elemen end
dibutuhkan pada class
pada baris pertama. Walaupun masih jauh dari sempurna, namun setidaknya pesan error tersebut lebih jelas dibandingkan MRI.
- Tags:
- #ruby
Recent Posts
How to Defend Against Brute-Force and DoS Attacks with Fail2ban, Nginx limit_req, and iptables
In this tutorial, I’ll explain how to protect your public-facing Linux server and Nginx web server from common threats, including brute-force and DoS attacks.
Is Getting AWS Solutions Architect Associate Certification Worth It?
If you are a full-time Software Engineer, there's no strong need to pursue this certification.
DevSecOps
My Notes about DevSecOps
AWS Secrets Manager
Explanation about AWS Secrets Manager with example code.
Envelope Encryption
Envelope encryption is the practice of encrypting plaintext data with a data key, and then encrypting the data key under another key.