Custom Exception trong Java
Trong java đã định nghĩa sẵn các exception class như ArithaturesException, NullPulumException,...v...v... những exception này sẽ được throw ra khi gặp các trường hợp cụ thể nào đó. Ví dụ nếu lấy một số nào đó chia cho 0, bạn sẽ tạo ra một ArithaturesException.

Trong bài trước chúng ta đã học cách sử dụng throw để ném ra exception, ở bài này ta sẽ tiếp tục dùng đến nó để nén ra các custom exception mà ngừoi dùng tự định nghĩa.
Chúng ta có thể tự tạo ra các exception class của riêng mình và ném exception đó bằng cách sử dụng từ khóa throw. Những exception này được gọi là user-defined exception hoặc custom exception. Trong bài viết này, chúng ta sẽ học cách tạo một custom exception và throw nó vào một điều kiện cụ thể.
Để có thể học tốt bài này, bạn nên có kiến thức cơ bản về try-catch block và throw trong java.
Bài viết này được đăng tại [free tuts .net]
1. Ví dụ về user-defined exception trong Java
Hãy bắt đầu bằng việc xem xét một ví dụ dưới đây.
/* This is my Exception class, I have named it MyException
* you can give any name, just remember that it should
* extend Exception class
*/
class MyException extends Exception{
String str1;
/* Constructor of custom exception class
* here I am copying the message that we are passing while
* throwing the exception to a string and then displaying
* that string along with the message.
*/
MyException(String str2) {
str1=str2;
}
public String toString(){
return ("MyException Occurred: "+str1) ;
}
}
class Example1{
public static void main(String args[]){
try{
System.out.println("Starting of try block");
// I'm throwing the custom exception using throw
throw new MyException("This is My error Message");
}
catch(MyException exp){
System.out.println("Catch Block") ;
System.out.println(exp) ;
}
}
}Output:
Starting of try block Catch Block MyException Occurred: This is My error Message
Bạn có thể thấy rằng tôi đã tự throw ra một user-defined exception bằng câu lệnh throw new MyException("This is My error Message").
Chú ý rằng:
- User-defined exception nghĩa phải extend từ Exception class.
- Exception được ném ra bằng cách sử dụng từ khóa throw.
2. Một ví dụ khác về user-defined exception
Throw có thể sử dụng bên trong một phương thức hay một khối lệnh nào đó. Khác với throw, throws lại dùng ngay khi bạn khai báo một phương thức, cẩn thận đừng để bị nhầm lẫn nhé.
Ở ví dụ này, chúng ta đang ném ra ngoại lệ từ một method. Trong trường hợp này, chúng ta nên sử dụng throws nếu không bạn sẽ gặp lỗi biên dịch: “unhandled exception in method”.
class InvalidProductException extends Exception
{
public InvalidProductException(String s)
{
// Call constructor of parent Exception
super(s);
}
}
public class Example1
{
void productCheck(int weight) throws InvalidProductException{
if(weight<100){
throw new InvalidProductException("Product Invalid");
}
}
public static void main(String args[])
{
Example1 obj = new Example1();
try
{
obj.productCheck(60);
}
catch (InvalidProductException ex)
{
System.out.println("Caught the exception");
System.out.println(ex.getMessage());
}
}
}Output:
Caught the exception Product Invalid
Trên là một vài ví dụ và cách tự tạo ra một exception trong Java.

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng