Study
Flask

Error Handling

Penjelasan

Secara default, error seperti 404 (halaman tidak ditemukan) atau 500 (server error) ditampilkan Flask dengan halaman bawaan yang polos. Kamu bisa menggantinya dengan halaman kustom lewat decorator @app.errorhandler(kode_status), yang menerima parameter error dan harus mengembalikan response beserta kode status HTTP-nya. Untuk menghentikan request secara sengaja dari dalam kode — misalnya user mencoba akses resource yang bukan miliknya — pakai abort(kode_status), yang otomatis memicu errorhandler terkait.

Contoh Konsep

from flask import Flask, render_template, abort

app = Flask(__name__)

@app.errorhandler(404)
def halaman_tidak_ditemukan(error):
    return render_template('404.html'), 404

@app.errorhandler(500)
def server_error(error):
    return render_template('500.html'), 500

@app.route('/produk/<int:id>')
def detail_produk(id):
    produk = cari_produk(id)
    if produk is None:
        abort(404)
    return f'Produk: {produk}'

Praktikum

Lengkapi route agar memanggil abort(403) kalau user bukan pemilik data, dan buat errorhandler untuk 403.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Jangan pernah menampilkan traceback error mentah ke user di production — pastikan debug=False dan andalkan errorhandler kustom untuk pengalaman yang lebih ramah.