tailieunhanh - Giáo trình hình thành công thức điều chỉnh testfunc khi thực hiện chia với zero p1
Do khởi tạo biến i giá trị là 11, nên điều kiện của while là sai, tuy nhiên vòng lặp vẫn được thực hiện một lần. Vòng lặp for Vòng lặp for bao gồm ba phần chính: Khởi tạo biến đếm vòng lặp Kiểm tra điều kiện biến đếm, nếu đúng thì sẽ thực hiện các lệnh bên trong vòng for Thay đổi bước lặp. Cú pháp sử dụng vòng lặp for như sau: | Giáo trình hình thành công thức điều chỉnh testfunc khi thực hiện chia với zero public static void Main Test t new Test ta thử chia hai phần xử lý ngoại lệ riêng public void TestFunc try double a 5 double b 0 0 1 2 a b DoDivide a b catch DivideByZeroException caught catch ArithmeticException caught catch Unknown exception caught thực hiện phép chia hợp lệ public double DoDivide double a double b if b 0 throw new if a 0 throw new return a b 372 H Kết quả DivideByZeroException caught Trong ví dụ này phương thức DoDivide sẽ không cho phép chúng ta chia cho zero bởi một số khác và cũng không cho phép chia số zero. Nó sẽ phát sinh một đối tượng của Divide-ByzeroException nếu chúng ta thực hiện chia với zero. Trong toán học việc lấy zero chia cho một số khác là được phép nhưng trong ví dụ minh họa của chúng ta không cho phép thực hiện việc này nếu thực hiện sẽ phát sinh ra một ngoại lệ ArithmeticException. Khi một ngoại lệ được phát sinh CLR sẽ kiểm tra mỗi khối xử lý ngoại lệ theo thứ tự và sẽ lấy khối đầu tiên thích hợp. Khi chúng ta thực hiện với a 5 và b 7 thì kết quả như sau 5 7 Như chúng ta mong muốn không có ngoại lệ được phát sinh. Tuy nhiên khi chúng ta thay đổi giá trị của a là 0 thì kết quả là ArithmeticException caught Ngoại lệ được phát sinh và CLR sẽ kiểm tra ngoại lệ đầu tiên DivideByZeroException. Bởi vì không phù hợp nên nó sẽ tiếp tục đi tìm và khối xử lý ArithmeticException được chọn. Cuối cùng giả sử chúng ta thay đổi giá trị của b là 0. Khi thực hiện điều này sẽ dẫn đến ngoại lệ DivideByZeroException. Ghi chú Chúng ta phải cẩn thận thứ tự của câu lệnh catch bởi vì DivideByZero-Exception được dẫn xuất từ ArithmeticException. Nếu chúng ta đảo thứ tự của câu lệnh catch thì ngoại lệ DivideByZeroException sẽ được phù hợp với khối xử lý ngoại lệ
đang nạp các trang xem trước