Yêu cầu thg 2 18, 2020 6:12 SA 1696 0 4
  • 1696 0 4
+2

Try catch vs If else

Chia sẻ
  • 1696 0 4

Các bác có thể cho biết sự khác nhau chính giữa try catch và if else k ạ, e có gg rồi mà cần xin thêm ý kiến của các bác, tks all !

4 CÂU TRẢ LỜI


Đã trả lời thg 2 18, 2020 6:19 SA
Đã được chấp nhận
+4
  • try catch là để bắt lỗi ngoại lệ : khi trong try lỗi thì sẽ thực thi các thao tác trong catch,
  • if else là câu lệnh rẽ nhánh: kiếm tra điều kiện ở if mà đúng thì thực hiện lệnh trong if, sai thì thực hiện lệnh trong else
Chia sẻ
Avatar duongricky @duongricky
thg 2 18, 2020 6:20 SA

tks bác

Đã trả lời thg 2 18, 2020 6:22 SA
+3

Trong câu lệnh try/catch, phần try luôn được thực thi và bất kỳ ngoại lệ (thường là lỗi) nào trong khi thực thi ở bất kỳ đâu trong phần try sẽ chuyển sang phần catch, nếu ko catch được thì nó sẽ bỏ qua. Trong câu lệnh if/else, phần if hoặc phần else được thực thi sau khi kiểm tra điều kiện để chạy vào

Chia sẻ
Đã trả lời thg 2 18, 2020 6:21 SA
+2

Theo mình thấy thì nó sẽ như thế này. Bạn muốn thực hiện điều gì đó và nếu nó có lỗi trong quá trình thực hiện thì sẽ thông báo lỗi hoặc làm 1 hành động do bạn quy định thì sẽ sử dụng try - catch. Còn bạn muốn phân chia hành động ra theo các trường hợp khác nhau thì dùng if - else

Chia sẻ
Đã trả lời thg 2 18, 2020 6:28 SA
+2
  • If else là khối lệnh để bạn kiểm tra một điều kiện cho trước bằng các toán tử: ==, <, >,..etc.. Cái này chắc bạn biết rồi

  • Còn try catch là khối lệnh dùng để kiểm thử một đoạn code có bị xảy ra Exception hay không, Exception có thể coi là một lỗi khi chạy đoạn code, ví dụ:

try {
    $name = 'Toi la con vit con';
    echo $name;
} catch ($error) {
    echo 'Code loi roi anh ey';
}

Đoạn code này đang kiểm tra các câu lệnh trong khối try, nhưng vì các câu lệnh này không hề có lỗi, nên câu echo trong đoạn catch sẽ không được chạy

Giờ hãy nhìn vào đoạn code này:

try {
    echo $name;
    $name = 'Toi la con vit con';
} catch ($error) {
    echo 'Code loi roi anh ey';
}

Lúc này trên màn hình sẽ in ra "Code loi roi anh ey" Vì trong đoạn try đã có lỗi xảy ra, biến $name được sử dụng khi chưa được khai báo.

Các lỗi về cú pháp, ví dụ như thiếu dấu chấm phẩy, thiếu dấu mở ngoặc, ... sẽ không được tính là Exception

Chia sẻ
Avatar duongricky @duongricky
thg 2 18, 2020 6:30 SA

vậy trong ex cuối của bác đoạn đó là lỗi syntax thôi phải k bác

thg 2 18, 2020 6:31 SA

@duongricky không bạn, lỗi đó không phải lỗi syntax, syntax là lỗi kiểu bạn gõ thiếu cú pháp ấy, còn lỗi kia là lỗi logic của phép toán, khi $name chưa được khai báo nhưng đã được sử dụng

Avatar duongricky @duongricky
thg 2 18, 2020 6:32 SA

@hongquanfit ok bác

Avatar Huan Nguyen @huannguyen
thg 2 20, 2020 2:43 SA

Em muốn hỏi về hiệu năng của try/catch và if else ạ? Nếu trong trường hợp có thể dùng cả 2 hoặc try/catch hoặc if-else thì nên ưu tiên try/catch hay if-else ạ?

thg 2 20, 2020 2:51 SA

@huannguyen try catch và if else là 2 khối lệnh khác nhau để thực hiện 2 công việc khác nhau, nên không thể so sánh hay ưu tiên cái nào đâu bạn nhé

Avatar Huan Nguyen @huannguyen
thg 2 20, 2020 3:05 SA

@hongquanfit em đồng ý, cảm ơn bác, so sánh khập khiểng quá, mới đăng ký acc trên này vào cmt đầu fail quá 😢

Avatar Huan Nguyen @huannguyen
thg 6 29, 2020 10:05 SA
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí