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
C# DbContext ServiceLifeTime
my note about C Sharp ServiceLifeTime
PostgreSQL Index Usage Monitoring
Having too many unused or underused indexes on a table can slow down write and update operations in your PostgreSQL database, making it crucial to regularly identify and manage them for optimal performance.
KAK Labs Newsletter #6 - Staying Safe From Pegasus Spyware
Newsletter #6 - Pegasus, Ruby, PostgreSQL and networkQuality tool
Material Design - Paragraph Spacing
According to Google's Material Design, keep paragraph spacing in the range between .75x and 1.25x of the type size.
Amazon SDK for C# - S3 File Download Methods
Comparison between `TransferUtility.DownloadAsync`, `DownloadSingleFileAsync`, and `GetObjectAsync`.