sử dụng procedure riêng để bẫy lỗi