Hỏi về xử lý ngoại lệ trong java
Em chào mọi người, em mới học xong Java cơ bản và giờ có chút thắc mắc về phần ngoại lệ trong java. Các Exception sử dụng try catch để bắt và xử lý ngoại lệ, nhưng những gì e làm qua thì đa phần sau khi phát hiện ra ngoại lệ chỉ là in câu lệnh thông báo lỗi, nay e muốn làm hơn thế nhưng chưa nghĩ ra.
VD: e muốn tạo 1 danh sách Vận Động Viên đi kèm Số Báo Danh và cả 2 biến đó đều do người dùng nhập vào. Giả sử việc nhập tên và SBD cho các vận động viên 1 2 làm ok nhưng đến nhập cho người thứ 3 thì người dùng nhập lỗi như:
- Thay vì gõ số vào sbd thì lại gõ nhầm chữ
- Gõ trùng số báo danh.
2 lỗi này sẽ nảy sinh ngoại lệ, chương trình sẽ thông báo cho người dùng biết lỗi sai và bắt nhập lại vdv thứ 3 cho đến khi đùng thì mới nhập tiếp những người sau.
Em loay hoay mãi chưa tìm được cách làm, mọi người có thể cho e gợi ý không ạ? em cảm ơn.
Bạn nên viết hàm kiểm tra nhập vào toàn số báo danh, hoặc chữ, khi người dùng vi phạm thì cho thông báo lỗi ra thôi. Có thể dùng do{}while(); để kiểm tra rồi bắt người dùng nhập lại.
Hi Kim Phuong DO.
Up code lên đây.
Cái này thì liên quan gì ngoại lệ chứ ?
Em có thể tự viết ngoại lệ riêng của mình.
Bên dưới là 1 ví dụ custom exception khi số tuổi vận động viên nhỏ hơn 18
Cái này chỉ cần throws exception lên tầng View rồi thông báo thôi. Chắc chú đang vướng chỗ này.
Dạ e cảm ơn mọi người đã giúp đỡ. Hiện tại e đã áp dụng cách của anh Nguyen Ca nhưng có vẻ không được, làm ngoại lệ giống anh Đỗ Trung Quân thì của e nó hơi khác chút xíu, dùng do while như gợi ý của a Hoàng Khoa thì hiện tại e chưa làm ra, mới chỉ dùng do while cho exception nên bị lỗi (lỗi là khi nhập sai giá trị nó báo lỗi liên tùng tục chẳng dừng). Và nghe lời anh Phong (Tao Không Ngu) thì em xin up đoạn code mà e làm ví dụ lên để mọi người chỉ cho e sai chỗ nào. Em cảm ơn rất nhiều và chúc mọi người luôn nhiều sức khỏe và tỉnh táo để code cho nó chất lượng
trên là khai tạo exception và dưới là chạy chương trình.
You can use this solution:
Bạn có thể dùng break thay vì phải dùng 1 biến flag
Cảm ơn bạn đã bỏ thời gian ra xem xét giúp đỡ vấn đề của mình Còn vấn đề quan trọng nữa bạn cho mình hỏi, nếu mình khởi tạo ID theo dạng Array thì làm sao để mình có thể nhập được toàn bộ giá trị cho mảng ID đó mà khi nhập lỗi nó bắt nhập lại đến khi đúng thì thôi. Mình dựa trên cách của bạn, đã lồng thêm thử if else và kể cả for nhưng nó vẫn cứ sai sai
Cảm ơn bạn nhiều !
Cảm ơn bạn đã quan tâm nhưng mình tưởng khi dùng break là nó sẽ nhảy ra khỏi vòng luôn chứ nhỉ?