Error Code: Handling Those Pesky Users

Cindy Adelia
temancatat
Published in
3 min readApr 17, 2018

A — User, C — Customer Service, E — Engineer
A: “Mba aplikasinya error nih”
C: “Errornya apa ya mas?”
A: “Gatau pokoknya error gabisa jalan”
C: “Gabisa jalannya gimana mas? Tulisannya apa?”
A: “Gatau pokoknya error”
C: “Sebentar ya mas”
C ke E
C: “Mas ini ada complain dari customer katanya error”
E: “Errornya apa?”
C: “Gatau pokoknya error”
E: *kills himself*
Gamau kan kejadian gitu di aplikasi kita? Makanya kita perlu pendefinisian yang baik untuk segala kejadian tidak normal pada aplikasi kita.

Pendefinisian error untuk user seringkali dilakukan dengan error code. Error code adalah suatu kode yang digunakan untuk mendeskripsikan suatu kejadian yang abnormal. Error code berbeda dengan yang dikenal secara umum pada sistem komputer yakni suatu error return value atau exit code. Error return value atau exit code digunakan dalam aplikasi untuk memberitahu terutama kepada Operating System apakah aplikasi tersebut berjalan dengan normal atau tidak. Sedangkan, error code yang akan kita bahas merupakan kode yang bertujuan untuk digunakan user dalam komunikasi dengan pihak pengembang. Contoh ekstrim error code digunakan oleh Google (Youtube) untuk mengetahui error yang terjadi.

Youtube Internal Server Error Error Code

Dalam program java, termasuk Android, secara umum error code digunakan dengan menjadi instance variable dari kelas Exception yang didefinisikan khusus untuk aplikasi. Sebagai contoh, misalkan kita akan mendefinisikan kelas MyException untuk aplikasi kita yang memuat error code.

public class MyException {
private int errorCode;
private String errorMessage;
public MyException(int errorCode, String errorMessage) {
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
public int getErrorCode() {
return this.errorCode;
}
public String getErrorMessage() {
return this.errorMessage;
}
}

Kita dapat menggunakan kelas tersebut untuk menyatakan hal-hal abnormal yang kita temui terutama yang dapat menyangkut user, misalnya tidak adanya akses database (Realm).

Kelas MyException di atas dapat kita kembangkan lebih lanjut dengan mengganti head Constructor dari MyException. Daripada menerima parameter int dan message, lebih baik menerima suatu Enum yang mewakili error code dan message yang mungkin. Enum tersebut selain merestriksi error code yang diberikan programmer agar sesuai definisi, atau mengupdate definisi dengan mengganti Enum tersebut, juga sebagai dokumentasi dan shortcut dari error code yang ada. Lebih lanjut, deklarasi constructor juga dapat memungkinkan error message custom agar error yang diberikan lebih detil sesuai kebutuhan.

public enum Error {
SOME_ERROR(2202, "Some Kinda Error."),
SERVER_ERROR(1101, "Terdapat kesalahan server.");
private final int errorCode;
private final String errorMessage;
Error(int errorCode, String errorMessage) {
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
public int getErrorCode() {
return this.errorCode;
}
public String getErrorMessage() {
return this.errorMessage;
}
}

Dengan definisi Enum tersebut, kita dapat mengganti MyException sebagai berikut.

public class MyException {
private int errorCode;
private String errorMessage;
public MyException(Error error) {
this.errorCode = error.getErrorCode();
this.errorMessage = error.getErrorMessage();
}
public MyException(Error error, String detail) {
this.errorCode = error.getErrorCode();
this.errorMessage = detail;
}
public int getErrorCode() {
return this.errorCode;
}
public String getErrorMessage() {
return this.errorMessage;
}
}

Dengan demikian, enum Error tersebut selain memberi restriksi Error yang dapat dimasukkan pada MyException juga menjadi dokumentasi sekaligus shortcut mengenai error code yang dapat dibaca dan digunakan dengan mudah oleh pengembang.

A: “Mba aplikasinya error nih”
C: “Errornya apa ya mas?”
A: “Gatau pokoknya error gabisa jalan”
C: “Gabisa jalannya gimana mas? Tulisannya apa?”
A: “Oh tulisannya Some Kinda Error 2202”
C: “Oke sebentar ya mas”
C ke E
C: “Mas ini ada complain dari customer katanya Some Kinda Error 2202”
E: “Oh force stop aja aplikasinya trus jalanin ulang”
C: “Sip sip sip”

Dengan error code, interaksi user dengan customer service menjadi indah dan solutif :) Happy making errors!

--

--