• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Giúp về Try...catch...end try !

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

tranbadat
Thành viên chính thức
Thành viên chính thức
Bài viết: 44
Ngày tham gia: T.Năm 21/02/2013 9:50 pm
Has thanked: 22 time
Been thanked: 4 time

Giúp về Try...catch...end try !

Gửi bàigửi bởi tranbadat » T.Sáu 29/03/2013 6:38 pm

mọi người có thể giảng thêm cho mình về công dụng của cấu trúc Try....catch.....end try không ?
có ví dụ thì càng tốt ! =((



Hình đại diện của người dùng
PAPYRON
Thành viên tích cực
Thành viên tích cực
Bài viết: 161
Ngày tham gia: T.Tư 23/11/2011 8:58 am
Đến từ: Lớp 9/4 THCS Lê Quý Đôn, Long Khánh, Đồng Nai.
Has thanked: 2 time
Been thanked: 38 time
Liên hệ:

Re: Giúp về Try...catch...end try !

Gửi bàigửi bởi PAPYRON » T.Sáu 29/03/2013 9:01 pm

chắc trên fb không tiện...
Đặt vấn đề: bình thường nếu gặp lỗi, app sẽ crash.
bi giờ có: try...catch...endtry, nó sẽ ko crash nữa.
Say đêy là vd đơn giản, bạn để nó trong event sub load() của form.
Chạy là crash:
  1. dim g as graphics
  2. g.drawline(pens.red,1,1,10,10)
  3.  

đoạn côde trên chọi ra lỗi, vì đơn giản là chưa có g nào tồn tại cà.

nhưng nếu trong đoạn côde này:
  1. dim g as graphics
  2. try
  3. g.drawline(pens.red,1,1,10,10)
  4. catch
  5. ' phần bắt lỗi
  6. end try
  7.  

thì app sẽ không bị lỗi.

cái này, ứng dụng: khi mà bạn ko biết g có tồn tại hay ko thì xài cách này. Mặc dù cách này ko thực tiễn nhưng đây là ví dụ. (Vẫn có cách khác nhé)

Hình đại diện của người dùng
PAPYRON
Thành viên tích cực
Thành viên tích cực
Bài viết: 161
Ngày tham gia: T.Tư 23/11/2011 8:58 am
Đến từ: Lớp 9/4 THCS Lê Quý Đôn, Long Khánh, Đồng Nai.
Has thanked: 2 time
Been thanked: 38 time
Liên hệ:

Re: Giúp về Try...catch...end try !

Gửi bàigửi bởi PAPYRON » T.Sáu 29/03/2013 9:06 pm

Đơn giản là:
  1. Try
  2. <câu_lệnh1>
  3. catch
  4. <câu_lệnh2>
  5. End try
  6.  


Nếu <câu_lệnh1> gây ra lỗi, thay vì crash thì nó sẽ chạy sang <câu_lệnh2>.
thường thì <câu_lênh1> là chơi với lửa. <câu_lênh2> xảy ra khi bị bỏng và cần sơ cứu (các thao tác sơ cứu).
Và tất nhiên là theo điềukiệntiêuchuẩn (1mol = 22.4lít khí) thì sẽ khỏi bỏng sau khi xong End Try.

binkute
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 57
Ngày tham gia: T.Ba 15/01/2013 8:01 pm
Has thanked: 10 time
Been thanked: 3 time

Re: Giúp về Try...catch...end try !

Gửi bàigửi bởi binkute » CN 31/03/2013 9:16 pm

tranbadat đã viết:mọi người có thể giảng thêm cho mình về công dụng của cấu trúc Try....catch.....end try không ?
có ví dụ thì càng tốt ! =((


Một hệ thống đồ sộ như Windowns ngay cả người lập trình ra nó cũng không thể kiểm soát hết được các lỗi có thể xảy ra.
Trong lập trình .NET cũng thế, có những trường hợp cú pháp bạn viết đúng, nhưng dữ liệu truyền vào lại sai (cái này người dùng đầu cuối thường mắc phải), mỗi khi lỗi, chương trình tự động dừng lại, thậm chí làm ngưng trệ hệ thống. Try ... catch có chức năng bắt lỗi ngoại lệ (lỗi không thể kiểm soát được) và lỗi "Kiểm soát được" - nhưng thông báo không rõ ràng, mang tính chung chung. Khi gặp lỗi, chương trình không thoát mà xuất hiện hộp thông báo cho người dùng biết, sau đó bỏ qua đoạn chương trình bị lỗi.

Ví dụ: phép toán chia cho 0
Cú pháp:

Mã: Chọn hết

dim a as double
dim b as double
dim c = a/b;


Nếu nhập b = 0 thì chương trình lỗi và dừng lại.
Còn

Mã: Chọn hết

dim a as double
dim b as double
try
{
dim c = a/b;
}
Catch ex As Exception
msgbox(ex.ToString)
End try

Khi nhập b = 0, chương trình hiện hộp thoại thông báo lỗi

Hình đại diện của người dùng
PAPYRON
Thành viên tích cực
Thành viên tích cực
Bài viết: 161
Ngày tham gia: T.Tư 23/11/2011 8:58 am
Đến từ: Lớp 9/4 THCS Lê Quý Đôn, Long Khánh, Đồng Nai.
Has thanked: 2 time
Been thanked: 38 time
Liên hệ:

Re: Giúp về Try...catch...end try !

Gửi bàigửi bởi PAPYRON » T.Ba 02/04/2013 9:18 pm

bạn <binkute> àh
rất cảm ơn bạn đã cho thêm 1 vd.
nhưng mà trong .net thì 9/0 = NaN chứ ko lỗi.

Hình đại diện của người dùng
fugio
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 83
Ngày tham gia: T.Năm 26/02/2009 1:58 pm
Đến từ: ha noi
Has thanked: 8 time
Been thanked: 7 time
Liên hệ:

Re: Giúp về Try...catch...end try !

Gửi bàigửi bởi fugio » CN 14/04/2013 12:43 am

tranbadat đã viết:mọi người có thể giảng thêm cho mình về công dụng của cấu trúc Try....catch.....end try không ?
có ví dụ thì càng tốt ! =((

Nếu bạn có tiền đóng học phí thì có thể học tiếp
Nếu bạn không có đủ tiền đóng học phí để học thì sẽ phải tạm ngưng học
Nhưng chưa có tiền đóng học phí bạn vẫn có thể thi tốt nghiệp
(nhà trường có nhiều quy định và sinh viên được hưởng nhiểu quyền lợi...)
đó là ý nghĩa của try...catch đó bạn ạ :))

tranbadat
Thành viên chính thức
Thành viên chính thức
Bài viết: 44
Ngày tham gia: T.Năm 21/02/2013 9:50 pm
Has thanked: 22 time
Been thanked: 4 time

Re: Giúp về Try...catch...end try !

Gửi bàigửi bởi tranbadat » T.Tư 24/04/2013 1:47 pm

Vâng !
rất thực tiễn :)
thanks bà con :)


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.3 khách