This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Dowload HFSS 2015 crack

TRY, CATCH, FINALLY TRONG JAVA



20111020_Java-Xulyngoaile-p2_2

Trước khi vào chi tiết, mình sẽ nêu 1 tình huống như này, đó là lỗi chia cho 0.
Bình thường theo các bài trước, các bạn sẽ dùng if, else để loại bỏ, in ra lỗi. (tất nhiên nếu bạn đã biết try catch rồi thì không nói :D). Đọc xong bài này, các bạn sẽ có thêm 1 cách khác, và tất nhiên nó còn sử dụng để bắt và xử lý nhiều loại lỗi hơn!

Ví dụ: Các bạn xem đoạn code này trước khi đọc lý thuyết, chạy thử nó, có thể nó cũng khá dễ hiểu!
PHP:
package javaandroidvn;

public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
int a 5;
        
int b 0;

        
//Cách các bài trước thường làm, dùng if, else:
        
if (== 0) {
            
System.out.println("Lỗi chia cho 0");
        } else {
            
System.out.println("a/b = " b);
        }

        
System.out.println("\nCách dùng try - catch - finally \n");

        
//Sử dụng try, catch để bắt lỗi:
        
try {
            
System.out.println("a/b = " b);
        } catch (
Exception e1) {
            
System.out.println("Có lỗi gì đó xảy ra  ");
            
System.out.println("Tên lỗi là: " e1);
        } 
finally {
            
System.out.println("Có lỗi hay không thì cái dòng cuối cùng này vẫn được in ra!");
        }

    }
}
1, Try - catch:

- Trong ví dụ trên, trong khối try{} là những dòng lệnh chúng ta cần thực hiện!
Khối catch (Exception e1) {} là nơi chứa các dòng lệnh thực hiện khi phát hiện lỗi!
- Ở đây, ta cần hiểu rõ khái niệm Exception:
Exception (Ngoại lệ) là sự kiện xảy ra khi một chương trình đang chạy mà phát sinh ra lỗi. Nó sẽ làm gián đoạn chương trình!
(Exception e1) trong đó "e1" là tên của được gán nếu đối tượng bị lỗi, các bạn có thể đặt tên này bằng các từ khác.
- Bạn có thể in "e1" ra ngoài, sẽ thấy được lỗi cụ thể!
- Exception là lớp cha, nó nói chung, và in ra các lỗi, ngoài ra còn có lớp con cụ thể và các ngoại lệ khác như sau:

Exception | Lớp nền của run-time
NullPointerException | Một đối tượng không tồn tại
ClassNotFoundException | Không tìm thấy Class
FileNotFoundException | Không tìm thấy file
SecurityException | Exception liên quan đến bảo mật
ArrayIndexOutOfBoundsException | Vượt quá chỉ mục của mảng
IllegalAccessException | Truy cập không hợp lệ
IllegalArgumentException | Đối số hàm
ArithmeticException | Lỗi thực thi một phép toán
NumberFormatException | Định dạng số không đúng
IOException | Lỗi nhập xuất
EOFException | Kết thúc một tập tin
NoSuchMethodException | Sai tên phương thức
InterruptedException | Ngắt luồng đang được thực thi

Ví dụ: In ra lỗi cụ thể vượt quá chỉ mục của mảng.
PHP:
package javaandroidvn;

public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
int arrInt[] = {124710};
        try {
            
System.out.println("arrInt[6] = " arrInt[6]);

        } catch (
ArrayIndexOutOfBoundsException e2) {
            
System.out.println("Lỗi! Vượt quá chỉ mục của mảng! " e2);
        }

    }
}
Ngoài ra, để in nhiều Exception thì ra làm như sau:
PHP:
try {
    
//Nội dung muốn bẫy lỗi} catch (ExceptionType1 e) {
    
//Khối lệnh cho lỗi}catch (ExceptionType2 e1) {
    
//Khối lệnh cho lỗi} catch (Exception ex) {
    
//Exception cho những cái còn lại}
Trong đó ExceptionType là những loại Exception cụ thể đã nêu ở phía trên!

2, Finally?

Nó nằm ở cuối cùng của khối lệnh try - catch - finally, nó luôn luôn được thực hiện ngay cả khi chương trình có bắt được lỗi
hay không!
Trong khối lệnh đầy đủ như ví dụ ở đầu bài, dòng System.out.println("Có lỗi hay không thì cái dòng cuối cùng này vẫn được in ra!");
Luôn luôn được thực hiện và in ra khi bạn gán bất giá trị nào cho b!

Xem thêm video nói khá đầy đủ về try - catch - finally của Blog StudyAndShare

Thực hành về Toast Notification và Alert Dialog

 

Vì trong tất cả các ứng dụng Tôi thấy rằng chúng ta hay sử dụng Toast và Alert Dialog để kiểm tra một điều gì đó, hay đơn giản chỉ là xuất thông báo. Vì vậy bài tập này Tôi sẽ hướng dẫn các bạn làm quen với Toast & Alert Dialog, sau đó các bạn sẽ được thực hành với các control cơ bản và nâng cao.
- Cả Toast và Alert Dialog khi hiển thị lên thì các tiến trình (hay các lệnh) khác  vẫn cứ tiếp tục làm việc.
1) Toast:
- Toast có thể được tạo và hiển thị trong Activity hoặc trong Servive.
- Không cho phép người sử dụng tương tác
- Khi hiển thị sau khoảng thời gian nào đó sẽ tự đóng lại
- Có 2 giá trị mặc định (ta nên sử dụng 2 giá trị này, không nên gõ con số cụ thể vào): hằng số Toast.LENGTH_SHORT hiển thị trong  2 giây, Toast.LENGTH_LONG hiển thị trong 3.5 giây.
Cách tạo Toast:
Toast toast=Toast.makeText(YourActivity.this, “Hiển thị gì thì ghi ở đây”,   Toast.LENGTH_SHORT);
toast.show();
- Khi nào bạn nên sử dụng Toast?
Theo Tôi thì tùy bạn, bạn có thể sử dụng trong trường hợp hiển thông báo trong các mục thiết lập thông số cấu hình, hay đơn giản chỉ là hiển thị lên để xem thông tin tạm thời nào đó (giống như để kiểm tra một vấn đề sảy ra chẳng hạn).
- Hình dưới đây cho bạn biết 1 Toast đang hiển thị:
9_dialog_02) Alert Dialog:
- Hiển thị và cho phép người dùng tương tác, ví dụ bạn nhìn hình Tôi chụp bên dưới, khi nhấn nút “Cancel”, chương trình sẽ hiển thị Alert Dialog hỏi xem có chắc chắn muốn xóa hay không? Bấm No thì không, bấm Yes thì tắt chương trình.
9_dialog_1- Cách tạo Alert Dialog:
AlertDialog.Builder b=new AlertDialog.Builder(YourActivity.this);
 
b.setTitle(“Question”);
b.setMessage(“Are you sure you want to exit?”);
b.setPositiveButton(“Yes”, new DialogInterface. OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
finish();
}}); b.setNegativeButton(“No”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
dialog.cancel();
}
});
b.create().show();
Ý nghĩa của các hàm :
- setTitle : thiết lập tiêu đề cho Dialog
- setMessage: Thiết lập nội dung cho Dialog
-setIcon : để thiết lập Icon
-setPositiveButtonsetNegativeButton thiết lập hiển thị Nút chọn cho Dialog (ở đây bạn không quan tâm Nút chấp nhận hay Nút hủy nó thuộc PositiveButton hay NegativeButton vì đó là tùy thuộc bạn chọn. Chú ý là ở đối số thứ 2 của các hàm này sẽ là DialogInterface. OnClickListener chứ không phải View. OnClickListener
- create() để tạo Dialog
- show() để hiển thị Dialog.

Formatting String

Hướng dẫn sử dụng String.Format

Video hướng dẫn sử dụng string.Format: Click here

Formatting String
example
output
String.Format(“–{0,10}–”, “test”);–      test–
String.Format(“–{0,-10}–”, “test”);–test      –

Formatting number

specifier
type
format
output
(double 1.2345)
output
(int -12345)
ccurrency{0:c}£1.23-£12,345.00
ddecimal
(whole number)
{0:d}System.FormatException-12345
eexponent / scientific{0:e}1.234500e+000-1.234500e+004
ffixed point{0:f}1.23-12345.00
ggeneral{0:g}1.2345-12345
nnumber{0:n}1.23-12,345.00
rround trippable{0:r}1.23System.FormatException
xhexadecimal{0:x4}System.FormatExceptionffffcfc7

 Custom number formatting

specifier
type
format
output
(double 1234.56)
0zero placeholder{0:00.000}1234.560
#digit placeholder{0:#.##}1234.56
.decimal point placeholder{0:0.0}1234.6
,thousand separator{0:0,0}1,235
%percentage{0:0%}123456%
Date formatting
specifier
type
output
(June 8, 1970 12:30:59)
dShort Date08/06/1970
DLong Date08 June 1970
tShort Time12:30
TLong Time12:30:59
fFull date and time08 June 1970 12:30
FFull date and time (long)08 June 1970 12:30:59
gDefault date and time08/06/1970 12:30
GDefault date and time (long)08/06/1970 12:30:59
MDay / Month8 June
rRFC1123 date stringMon, 08 Jun 1970 12:30:59 GMT
sSortable date/time1970-06-08T12:30:59
uUniversal time, local timezone1970-06-08 12:30:59Z
YMonth / YearJune 1970

 Custom date formatting

specifier
type
output
(June 8, 1970 12:30:59)
ddDay08
dddShort Day NameMon
ddddFull Day NameMonday
hh2 digit hour12
HH2 digit hour (24 hour)12
mm2 digit minute30
MMMonth06
MMMShort Month nameJun
MMMMMonth nameJune
ssseconds59
ttAM/PMPM
yy2 digit year70
yyyy4 digit year1970
:seperator, e.g. {0:hh:mm:ss}12:30:59
/seperator, e.g. {0:dd/MM/yyyy}08/06/1970
Culture information
String.Format() cho phép overload chấp nhận tham số CultureInfo. Từ đó, giúp cho các lập trình viên có thể viết được các chương trình phù hợp với những vùng văn hóa khác nhau. Ví dụ, các tên tháng sẽ thay đổi theo thiết lập cục bộ trong máy của bạn. Thay vì gọi đơn giản gọi phương thức String.Format(), bạn nên chú ý đến việc dùng overload này. Nếu bạn không muốn xác định culture, bạn có thể dùng System.Globalization.CultureInfo.InvariantCulture. Điều này sẽ đặt thiết lập định dạng mặc định là English, và sẽ thay thế cho culture trong thread hiện tại.