Professional Documents
Culture Documents
In Put and Try Catch
In Put and Try Catch
Nhập tử tế, Nhập ngoài biên (out Lệnh nhập bị trôi, lệnh lạc Nhập cà chớn, không biết xử
đúng yêu of range), ngoài miền trôi lí ra sao
cầu giá trị cần thiết (Skip getting a Không xài if được
Dùng if char/string) (Exception)
App yêu cầu App yêu cầu nhập năm sinh Xảy ra khi nhập kí tự/chuỗi sau Xảy ra khi yêu cầu nhập số nhưng ta
nhập chuỗi từ [1990…2001] khi nhập số (lệnh nhập số trước gõ chuỗi Ahihi
o Ta gõ “Ahihi” o Ta gõ 2000 Enter > ổn lệnh nhập chữ/chuỗi) o Mặc định, JVM phát hiện dữ liệu sai
rồi Enter o Ta gõ 2005 Enter > giá trị Nguyên nhân: lệch, không thể convert “Ahihi” về số
o Ổn, xử lí tiếp không hợp lệ, nằm ngoài nào phù hợp, để đảm bảo App xử lí data
o Lệnh nhập số chỉ dùng đúng phần
không bình biên, ta dùng lệnh an toàn, JVM gửi một “tin
số trong buffer (bộ nhớ đệm nhập
nhắn”/an Exception object
luận if(yob < 1990 || yob xuất), và để lại dấu cách, kí tự
cho App, báo rằng có tình huống “bất
App yêu cầu > 2001) khác, và enter trong buffer (gọi là
thường, cà chớn không như dự kiến –
rác buffer).
nhập số nguyên sout(chửi); gọi chung là Exception” đã xảy ra, và
o Lệnh liền kề nhập kí tự/chuỗi thấy giết luôn App, ngay và luôn (End
o Ta gõ 2000 rồi o Và có thể kết hợp do-while()
bắt nhập lại có “char” trong buffer, hốt luôn Process)
Enter
“rác” này gán vào biến kí tự/chuỗi
o Ổn, chơi tiếp Hoặc App yêu cầu nhập o Và hiện tượng trôi lệnh xảy ra, cảm o Lí do: đưa chuỗi vào số, không thể dùng
chuỗi khác rỗng, theo định giác lệnh nhập kí tự/chuỗi không lệnh if để xử lí được, mà tiếp tục dùng
dạng nào đó chạy, không cho mình gõ nhưng cái sai để làm tiếp thì là sai luôn, giết
thực ra là “tài lanh” hốt rác buffer cho lành
o Ta dùng if()và các hàm liên gán vào o Nếu không muốn bị JVM giết khi có “cà
quan để kiểm tra dữ liệu
nhập vào và thông báo lỗi (và Lập trình C: xóa bộ nhớ đệm
chớn”, hãy ra hiệu với JVM đừng giết
nhập xuất trước lệnh nhập kí App, cứ nhắc App có cà chớn là được,
bắt nhập lại) là ổn
tự/chuỗi %c, %s gửi cho App cái tình hình cà chớn – an
o Nhập cùng data type khác kì Exception object, và để App tự tính
vọng, xài if o fflush(stdin); nếu xài toán, tự xử. JVM sẽ không giết App nữa,
o Đúng định dạng, sai compiler MinGW, Microsoft C nhưng JVM muốn rằng App cần có cơ
value cần -> ngoài Compiler chế cam kết đảm bảo xử lí cà chớn. JVM
biên -> if mà check o fpurge(stdin); nếu xài GCC, muốn thấy App phải nhốt các lệnh có
mà chửi Cygwin Compiler nguy cơ gây cà chớn vào tầm ngắm, vào
tầm kiểm soát, giám sát, ĐÓ LÀ CƠ CHẾ
o __fpurge(stdin); nếu xài
TRY-CATCH
Linux, MacOS
try {
Lập trình Java: xóa bộ nhớ đệm
nhốt lệnh cần giám sát
nhập xuất trước lệnh nhập kí
.nextInt();
tự/chuỗi dùng Scanner
.parseInt(?);
o Tà chiêu Âu Dương Phong
sc.nextLine(); chạy chơi }