Asked Feb 18th, 6:12 AM 179 0 4
  • 179 0 4
+2

Try catch vs If else

Share
  • 179 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 ANSWERS


Answered Feb 18th, 6:19 AM
Accepted
+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
Share
duongricky @duongricky
Feb 18th, 6:20 AM

tks bác

0
| Reply
Share
Answered Feb 18th, 6:22 AM
+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

Share
Answered Feb 18th, 6:28 AM
+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

Share
duongricky @duongricky
Feb 18th, 6:30 AM

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

0
| Reply
Share
Feb 18th, 6:31 AM

@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

+1
| Reply
Share
duongricky @duongricky
Feb 18th, 6:32 AM

@hongquanfit ok bác

0
| Reply
Share
Huan Nguyen @huannguyen
Feb 20th, 2:43 AM

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 ạ?

0
| Reply
Share
Feb 20th, 2:51 AM

@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é

0
| Reply
Share
Huan Nguyen @huannguyen
Feb 20th, 3:05 AM

@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á 😢

0
| Reply
Share
Answered Feb 18th, 6:21 AM
+1

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

Share