Handling an Exceptional Event

Photo by Steve Johnson on Unsplash

Pada post kali ini saya akan membahas apa yang dimaksud dengan exception handling, kemudian bagaimana error yang terjadi (di web) disampaikan dalam sebuah API response.

Error code adalah sebuah kode yang berbeda satu sama lain untuk menyatakan status dari aplikasi maupun sistem. Hal ini berguna agar sistem dapat mengidentifikasi permasalahan tersebut dan menemukan solusi yang tepat, yang dapat disebabkan oleh hardware, software, ataupun user sendiri. Sebagai contoh, error code yang umum kita lihat adalah 404 (page not found) dan 500 (internal server error) pada web.

Sementara excetion handling bertujuan untuk mempertahankan agar alur dari aplikasi berjalan normal apabila terdapat exception itu sendiri. Exception sendiri adalah sebuah event yang tidak direncanakan dan dapat terjadi karena invalid input atau data tidak ada. Jadi, dalam suatu metode kita dapat menggunakan try except (pada python) sehingga jika terjadi eror pada metode yang kita coba, program masih akan menjalankan intruksi pada bagian except.

Untuk response web yang berisikan error code kita juga dapat mendefinisikan kode kita sendiri, dengan catatan best practice adalah kita menggunakan kode yang belum termasuk pada HTTP/1.1 standard. Di bawah saya memberikan contoh, bahwa client meminta bagian dari page yang sudah melebihi batas dengan kode 434, sehingga tidak dapat diproses.
if not data:
response = Response(
  json.dumps({
  'http-status': {
    'message': "Offset has reached max_page",
    'code': 434
  }
}), status= 434


Sementara untuk exception handling sendiri, bisa digunakan try except seperti ini, 


class Workloads(Resource):
    def get(self):
        try:
           ...

            if not data:
                response = Response(
                    ...
                )

            else:
                response = Response(
                    json.dumps({
                       ...
                })

            response.headers.add('Access-Control-Allow-Origin', 'http://allocateam.com')
            return response

        except Exception as e:  # pragma: no cover
            response = Response(
                json.dumps(
                    ...
                }), status=500
            )

            response.headers.add('Access-Control-Allow-Origin', 'http://allocateam.com')
            return response

sehingga ketika terdapat error yang terjadi server masih dapat mengembalikan response yang tentunya disertai dengan pesan penjelasan soal error yang terjadi.

0 komentar:

Post a Comment