Trang 1 của 4 123 ... CuốiCuối
Kết quả 1 đến 10 của 38
  1. #1
    Ngày tham gia
    Jan 2015
    Bài viết
    0

    Bài 22: Try, catch, finally trong Java

    /* bài viết thuộc loạt bài hướng dẫn trong "khóa học lập trình java miễn phí"
    trên diễn đàn android.vn, bạn có thể vào đây đọc

    để hiểu hơn về khóa học và tham gia ngay cùng mọi người */



    android.vn/attachments/20111020_java-xulyngoaile-p2_2-gif.18105/" border="0" alt="" />


    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!


    Mã nguồn PHP:
    [color=#000000]
    package javaandroidvn[/color][color=#007700]; public class [/color][color=#0000bb]javaandroidvn [/color][color=#007700]{ public static [/color][color=#0000bb]void main[/color][color=#007700]([/color][color=#0000bb]string[/color][color=#007700][] [/color][color=#0000bb]args[/color][color=#007700]) { [/color][color=#0000bb]int a [/color][color=#007700]= [/color][color=#0000bb]5[/color][color=#007700]; [/color][color=#0000bb]int b [/color][color=#007700]= [/color][color=#0000bb]0[/color][color=#007700]; [/color][color=#ff8000]//cách các bài trước thường làm, dùng if, else: [/color][color=#007700]if ([/color][color=#0000bb]b [/color][color=#007700]== [/color][color=#0000bb]0[/color][color=#007700]) { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"lỗi chia cho 0"[/color][color=#007700]); } else { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"a/b = " [/color][color=#007700]+ [/color][color=#0000bb]a [/color][color=#007700]/ [/color][color=#0000bb]b[/color][color=#007700]); } [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"
    cách dùng try - catch - finally
    "[/color][color=#007700]); [/color][color=#ff8000]//sử dụng try, catch để bắt lỗi: [/color][color=#007700]try { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"a/b = " [/color][color=#007700]+ [/color][color=#0000bb]a [/color][color=#007700]/ [/color][color=#0000bb]b[/color][color=#007700]); } catch ([/color][color=#0000bb]exception e1[/color][color=#007700]) { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"có lỗi gì đó xảy ra "[/color][color=#007700]); [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"tên lỗi là: " [/color][color=#007700]+ [/color][color=#0000bb]e1[/color][color=#007700]); } finally { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"có lỗi hay không thì cái dòng cuối cùng này vẫn được in ra!"[/color][color=#007700]); } }}[/color] 
    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
    arrayindexoutofbound***ception | vượt quá chỉ mục của mảng
    illegalacces***ception | 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.


    Mã nguồn PHP:
    [color=#000000]
    package javaandroidvn[/color][color=#007700]; public class [/color][color=#0000bb]javaandroidvn [/color][color=#007700]{ public static [/color][color=#0000bb]void main[/color][color=#007700]([/color][color=#0000bb]string[/color][color=#007700][] [/color][color=#0000bb]args[/color][color=#007700]) { [/color][color=#0000bb]int arrint[/color][color=#007700][] = {[/color][color=#0000bb]1[/color][color=#007700], [/color][color=#0000bb]2[/color][color=#007700], [/color][color=#0000bb]4[/color][color=#007700], [/color][color=#0000bb]7[/color][color=#007700], [/color][color=#0000bb]10[/color][color=#007700]}; try { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"arrint[6] = " [/color][color=#007700]+ [/color][color=#0000bb]arrint[/color][color=#007700][[/color][color=#0000bb]6[/color][color=#007700]]); } catch ([/color][color=#0000bb]arrayindexoutofbound***ception e2[/color][color=#007700]) { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"lỗi! vượt quá chỉ mục của mảng! " [/color][color=#007700]+ [/color][color=#0000bb]e2[/color][color=#007700]); } }}[/color] 
    ngoài ra, để in nhiều exception thì ra làm như sau:


    Mã nguồn PHP:
    [color=#000000]
    [/color][color=#007700]try { [/color][color=#ff8000]//nội dung muốn bẫy lỗi[/color][color=#007700]} catch ([/color][color=#0000bb]exceptiontype1 e[/color][color=#007700]) { [/color][color=#ff8000]//khối lệnh cho lỗi[/color][color=#007700]}catch ([/color][color=#0000bb]exceptiontype2 e1[/color][color=#007700]) { [/color][color=#ff8000]//khối lệnh cho lỗi[/color][color=#007700]} catch ([/color][color=#0000bb]exception ex[/color][color=#007700]) { [/color][color=#ff8000]//exception cho những cái còn lại[/color][color=#007700]}[/color] 
    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



    bổ sung thêm video về throw and throws

    bài tập về nhà::d
    làm lại bài giải phương trình ax + b = 0 . lập trình hướng đối tượng. các hệ số nhập vào từ bàn phím. sử dụng try - catch để bẫy các lỗi khi nhập sai kiểu dữ liệu, ví dụ nhập số lại nhập chữ. bẫy lỗi chia cho 0.

    (chú ý: các bạn nên tự giác làm bài tập, hoàn thiện rồi đăng lên, các bài bạn đã làm, nên để code trong thẻ code - chọn thẻ php cho rõ ràng và để ẩn code trong thẻ ẩn spoiler, để khi click vào mới hiện code lên , trước khi thử sức tự làm, bạn không nên nhìn code của các bạn khác đã đăng nhé)

    my facebook: https://www.facebook.com/tiasangmoi

    bài viết đăng lên diễn đàn khác vui lòng ghi rõ nguồn: android.vn

  2. #2
    Ngày tham gia
    Apr 2016
    Bài viết
    0
    <div class="bbcodeblock bbcodequote bbcmspoilerblock">
    <div class="attribution type"><noscript>spoiler (move your mouse to the spoiler area to reveal the content)</noscript>

    show spoiler
    hide spoiler

    </div>
    <div class="quotecontent">
    <div class="bbcm_spoiler_noscript"><blockquote>


    Mã nguồn PHP:
    [color=#000000]
    package basic[/color][color=#007700]; [/color][color=#0000bb]import basic[/color][color=#007700].[/color][color=#0000bb]numbershandling[/color][color=#007700]; [/color][color=#ff8000]// class minh viet san nham muc dich kiem soat truong hop nhap chu thay vi nhap so [/color][color=#007700]public class [/color][color=#0000bb]simpleequation[/color][color=#007700]{ private [/color][color=#0000bb]float a[/color][color=#007700]; private [/color][color=#0000bb]float b[/color][color=#007700]; public [/color][color=#0000bb]simpleequation[/color][color=#007700]() { [/color][color=#0000bb]boolean continueloop [/color][color=#007700]= [/color][color=#0000bb]true[/color][color=#007700]; while( [/color][color=#0000bb]continueloop [/color][color=#007700]) { try { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print( [/color][color=#dd0000]"enter a: " [/color][color=#007700]); [/color][color=#0000bb]a [/color][color=#007700]= [/color][color=#0000bb]numbershandling[/color][color=#007700].[/color][color=#0000bb]inputfloathandling[/color][color=#007700](); if ( [/color][color=#0000bb]a [/color][color=#007700]== [/color][color=#0000bb]0 [/color][color=#007700]) throw new [/color][color=#0000bb]illegalargumentexception [/color][color=#007700]( [/color][color=#dd0000]"first argument cannot be zero!" [/color][color=#007700]); else [/color][color=#0000bb]continueloop [/color][color=#007700]= [/color][color=#0000bb]false[/color][color=#007700]; } catch ( [/color][color=#0000bb]exception e [/color][color=#007700]) { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]( [/color][color=#0000bb]e [/color][color=#007700]); } } [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print( [/color][color=#dd0000]"enter b: " [/color][color=#007700]); [/color][color=#0000bb]b [/color][color=#007700]= [/color][color=#0000bb]numbershandling[/color][color=#007700].[/color][color=#0000bb]inputfloathandling[/color][color=#007700](); } public [/color][color=#0000bb]void run[/color][color=#007700]() { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]( [/color][color=#dd0000]"x = " [/color][color=#007700]+ ( -[/color][color=#0000bb]b [/color][color=#007700]/ [/color][color=#0000bb]a [/color][color=#007700]) ); } public static [/color][color=#0000bb]void main[/color][color=#007700]([/color][color=#0000bb]string[/color][color=#007700][] [/color][color=#0000bb]args[/color][color=#007700]) { [/color][color=#0000bb]simpleequation newtest [/color][color=#007700]= new [/color][color=#0000bb]simpleequation[/color][color=#007700](); [/color][color=#0000bb]newtest[/color][color=#007700].[/color][color=#0000bb]run[/color][color=#007700](); } }[/color] 
    </blockquote></div>
    </div>
    </div>

  3. #3
    Ngày tham gia
    Jul 2015
    Bài viết
    67
    bài này e chịu

  4. #4
    Ngày tham gia
    Apr 2016
    Bài viết
    0
    Trích dẫn Gửi bởi diepthanh94
    bài này e chịu
    làm lại ví dụ đi em, không tham khảo bài bạn trên nữa!

  5. #5
    Ngày tham gia
    Jan 2015
    Bài viết
    0
    Trích dẫn Gửi bởi phongdt
    <div class="bbcodeblock bbcodequote bbcmspoilerblock">
    <div class="attribution type"><noscript>spoiler (move your mouse to the spoiler area to reveal the content)</noscript>

    show spoiler
    hide spoiler

    </div>
    <div class="quotecontent">
    <div class="bbcm_spoiler_noscript"><blockquote>


    Mã nguồn PHP:
    [color=#000000]
    package basic[/color][color=#007700]; [/color][color=#0000bb]import basic[/color][color=#007700].[/color][color=#0000bb]numbershandling[/color][color=#007700]; [/color][color=#ff8000]// class minh viet san nham muc dich kiem soat truong hop nhap chu thay vi nhap so [/color][color=#007700]public class [/color][color=#0000bb]simpleequation[/color][color=#007700]{ private [/color][color=#0000bb]float a[/color][color=#007700]; private [/color][color=#0000bb]float b[/color][color=#007700]; public [/color][color=#0000bb]simpleequation[/color][color=#007700]() { [/color][color=#0000bb]boolean continueloop [/color][color=#007700]= [/color][color=#0000bb]true[/color][color=#007700]; while( [/color][color=#0000bb]continueloop [/color][color=#007700]) { try { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print( [/color][color=#dd0000]"enter a: " [/color][color=#007700]); [/color][color=#0000bb]a [/color][color=#007700]= [/color][color=#0000bb]numbershandling[/color][color=#007700].[/color][color=#0000bb]inputfloathandling[/color][color=#007700](); if ( [/color][color=#0000bb]a [/color][color=#007700]== [/color][color=#0000bb]0 [/color][color=#007700]) throw new [/color][color=#0000bb]illegalargumentexception [/color][color=#007700]( [/color][color=#dd0000]"first argument cannot be zero!" [/color][color=#007700]); else [/color][color=#0000bb]continueloop [/color][color=#007700]= [/color][color=#0000bb]false[/color][color=#007700]; } catch ( [/color][color=#0000bb]exception e [/color][color=#007700]) { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]( [/color][color=#0000bb]e [/color][color=#007700]); } } [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print( [/color][color=#dd0000]"enter b: " [/color][color=#007700]); [/color][color=#0000bb]b [/color][color=#007700]= [/color][color=#0000bb]numbershandling[/color][color=#007700].[/color][color=#0000bb]inputfloathandling[/color][color=#007700](); } public [/color][color=#0000bb]void run[/color][color=#007700]() { [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]( [/color][color=#dd0000]"x = " [/color][color=#007700]+ ( -[/color][color=#0000bb]b [/color][color=#007700]/ [/color][color=#0000bb]a [/color][color=#007700]) ); } public static [/color][color=#0000bb]void main[/color][color=#007700]([/color][color=#0000bb]string[/color][color=#007700][] [/color][color=#0000bb]args[/color][color=#007700]) { [/color][color=#0000bb]simpleequation newtest [/color][color=#007700]= new [/color][color=#0000bb]simpleequation[/color][color=#007700](); [/color][color=#0000bb]newtest[/color][color=#007700].[/color][color=#0000bb]run[/color][color=#007700](); } }[/color] 
    </blockquote></div>
    </div>
    </div>
    sao phương trình bậc nhất mà a = 0 thì lại là illegal nhỉ. với phương trình bậc nhất thì người ta phân rõ các trường hợp:
    1 - a=0 && b=0 => vô số nghiệm
    2- a=0 && b!=0 => vô nghiệm
    3 - a!=0 => nghiệm duy nhất
    bài toán này ko phù hợp lắm

  6. #6
    Ngày tham gia
    Jul 2015
    Bài viết
    0
    sử dụng try - catch để bẫy các lỗi khi nhập sai kiểu dữ liệu, ví dụ nhập số lại nhập chữ
    chủ yếu là mong các bạn ấy làm cái này, nhưng lại chưa làm được ^^

  7. #7
    Ngày tham gia
    Aug 2014
    Bài viết
    0
    Trích dẫn Gửi bởi gabk
    sao phương trình bậc nhất mà a = 0 thì lại là illegal nhỉ. với phương trình bậc nhất thì người ta phân rõ các trường hợp:
    1 - a=0 && b=0 => vô số nghiệm
    2- a=0 && b!=0 => vô nghiệm
    3 - a!=0 => nghiệm duy nhất
    bài toán này ko phù hợp lắm
    ồ thực ra mình không để ý lắm, lúc đó mình chỉ nghĩ là nếu a = 0 thì không còn là phương trình :d

  8. #8
    Ngày tham gia
    Apr 2016
    Bài viết
    0
    <div class="bbcodeblock bbcodequote bbcmspoilerblock">
    <div class="attribution type"><noscript>spoiler (move your mouse to the spoiler area to reveal the content)</noscript>

    show spoiler
    hide spoiler

    </div>
    <div class="quotecontent">
    <div class="bbcm_spoiler_noscript"><blockquote>


    Mã nguồn PHP:
    [color=#000000]
    [/color][color=#ff8000]/** to change this template, choose tools | templates* and open the template in the editor.*/[/color][color=#0000bb]package learning[/color][color=#007700].[/color][color=#0000bb]basic[/color][color=#007700]; [/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].[/color][color=#0000bb]inputmismatchexception[/color][color=#007700];[/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]util[/color][color=#007700].[/color][color=#0000bb]scanner[/color][color=#007700]; [/color][color=#ff8000]/**** @author le van huy*/[/color][color=#007700]public class [/color][color=#0000bb]try_catch [/color][color=#007700]{ public static [/color][color=#0000bb]void main [/color][color=#007700]([/color][color=#0000bb]string[/color][color=#007700][] [/color][color=#0000bb]args[/color][color=#007700]){ [/color][color=#0000bb]math cal [/color][color=#007700]= new [/color][color=#0000bb]math[/color][color=#007700](); [/color][color=#0000bb]cal[/color][color=#007700].[/color][color=#0000bb]input[/color][color=#007700](); [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"//----------------------------------------//"[/color][color=#007700]); [/color][color=#0000bb]cal[/color][color=#007700].[/color][color=#0000bb]show[/color][color=#007700](); }} class [/color][color=#0000bb]math[/color][color=#007700]{ public [/color][color=#0000bb]int a[/color][color=#007700], [/color][color=#0000bb]b[/color][color=#007700]; public [/color][color=#0000bb]void input[/color][color=#007700](){ [/color][color=#0000bb]scanner input [/color][color=#007700]= new [/color][color=#0000bb]scanner[/color][color=#007700]([/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]in[/color][color=#007700]); try { [/color][color=#ff8000]// set input method in try{}. [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print([/color][color=#dd0000]"let put value of a: "[/color][color=#007700]); [/color][color=#0000bb]a [/color][color=#007700]= [/color][color=#0000bb]input[/color][color=#007700].[/color][color=#0000bb]nextint[/color][color=#007700](); [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print([/color][color=#dd0000]"let put value of b: "[/color][color=#007700]); [/color][color=#0000bb]b [/color][color=#007700]= [/color][color=#0000bb]input[/color][color=#007700].[/color][color=#0000bb]nextint[/color][color=#007700](); } catch([/color][color=#0000bb]inputmismatchexception e[/color][color=#007700]){ [/color][color=#ff8000]//set exception and error report in catch(){}. [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"error: " [/color][color=#007700]+ [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()); } catch([/color][color=#0000bb]exception e[/color][color=#007700]){ [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"error: " [/color][color=#007700]+ [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()); } } public [/color][color=#0000bb]void show[/color][color=#007700](){ [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"ax + b = 0, a = " [/color][color=#007700]+ [/color][color=#0000bb]a [/color][color=#007700]+ [/color][color=#dd0000]", b = " [/color][color=#007700]+ [/color][color=#0000bb]b[/color][color=#007700]); try{ [/color][color=#ff8000]// set input method in try{}. [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"=> x = " [/color][color=#007700]+ (-[/color][color=#0000bb]b[/color][color=#007700]/[/color][color=#0000bb]a[/color][color=#007700])); } catch([/color][color=#0000bb]arithmeticexception e[/color][color=#007700]){ [/color][color=#ff8000]//set exception and error report in catch(){}. [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"error: " [/color][color=#007700]+ [/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()); } }}[/color] 
    </blockquote></div>
    </div>
    </div>

  9. #9
    Ngày tham gia
    Aug 2014
    Bài viết
    0
    có một chú ý nhỏ như thế này với các bạn:
    với 1 try thì có thể có nhiều catch. ta có thể dùng nhiều catch để bắt chính xác loại ngoại lệ sẽ gặp phải, tuy nhiên, nhiều khi ta không thể lường hết được, biết đâu có 1 ngoại lệ nào đó (chẳng hạn runtimeexception) nó ko vào một cái catch nào của bạn (ví dụ bạn có 3 catch: numberformatexception, nullpointerexception, filenotfoundexception) thì lúc đó chương trình của bạn vẫn bị crash. để tránh tình trạng này, ta nên cẩn thận (mặc dù có thể như thế là thừa thãi nhưng đôi lúc lại có giá trị) đó là luôn để vòng catch cuối cùng là lớp exception, như vậy nếu các vòng catch cụ thể ko gặp thì thằng catch này sẽ bắt được, và như thế sẽ ko bị crash. và nếu mình không cần quan tâm quá nhiều đến ngoại lệ thì tốt nhất chỉ cần 1 catch(exception e) là đủ. mình đã gặp tình huống trong khi làm thực tế nên muốn chú ý các bạn chút

  10. #10
    Ngày tham gia
    Feb 2015
    Bài viết
    0
    <div class="bbcodeblock bbcodequote bbcmspoilerblock">
    <div class="attribution type"><noscript>spoiler (move your mouse to the spoiler area to reveal the content)</noscript>

    show spoiler
    hide spoiler

    </div>
    <div class="quotecontent">
    <div class="bbcm_spoiler_noscript"><blockquote>


    Mã nguồn PHP:
    [color=#000000]
    [/color][color=#ff8000]/** to change this template, choose tools | templates* and open the template in the editor.*/ /**** @author dienlh*/[/color][color=#0000bb]import java[/color][color=#007700].[/color][color=#0000bb]io[/color][color=#007700].[/color][color=#0000bb]datainputstream[/color][color=#007700];class [/color][color=#0000bb]nhapdl[/color][color=#007700]{ static [/color][color=#0000bb]datainputstream str[/color][color=#007700]=new [/color][color=#0000bb]datainputstream[/color][color=#007700]([/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]in[/color][color=#007700]); public static [/color][color=#0000bb]string nhapstring[/color][color=#007700](){ [/color][color=#0000bb]string st[/color][color=#007700]=[/color][color=#dd0000]""[/color][color=#007700]; [/color][color=#0000bb]boolean ok[/color][color=#007700]=[/color][color=#0000bb]false[/color][color=#007700]; while(![/color][color=#0000bb]ok[/color][color=#007700]){ try{ [/color][color=#0000bb]st[/color][color=#007700]=[/color][color=#0000bb]str[/color][color=#007700].[/color][color=#0000bb]readline[/color][color=#007700](); [/color][color=#0000bb]ok[/color][color=#007700]=[/color][color=#0000bb]true[/color][color=#007700]; }catch([/color][color=#0000bb]exception e[/color][color=#007700]){ [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"not found"[/color][color=#007700]+[/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()+[/color][color=#dd0000]"
    vui long nhap lai:"[/color][color=#007700]); } } return [/color][color=#0000bb]st[/color][color=#007700]; } public static [/color][color=#0000bb]double nhapdouble[/color][color=#007700](){ [/color][color=#0000bb]string st[/color][color=#007700]; [/color][color=#0000bb]double d[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700]; [/color][color=#0000bb]boolean ok[/color][color=#007700]=[/color][color=#0000bb]false[/color][color=#007700]; while(![/color][color=#0000bb]ok[/color][color=#007700]){ try{ [/color][color=#0000bb]st[/color][color=#007700]=[/color][color=#0000bb]nhapdl[/color][color=#007700].[/color][color=#0000bb]nhapstring[/color][color=#007700](); [/color][color=#0000bb]d[/color][color=#007700]=[/color][color=#0000bb]double[/color][color=#007700].[/color][color=#0000bb]valueof[/color][color=#007700]([/color][color=#0000bb]st[/color][color=#007700]).[/color][color=#0000bb]doublevalue[/color][color=#007700](); [/color][color=#0000bb]ok[/color][color=#007700]=[/color][color=#0000bb]true[/color][color=#007700]; }catch([/color][color=#0000bb]exception e[/color][color=#007700]){ [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print([/color][color=#dd0000]"error"[/color][color=#007700]+[/color][color=#0000bb]e[/color][color=#007700].[/color][color=#0000bb]tostring[/color][color=#007700]()); [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print([/color][color=#dd0000]"vui long nhap lai: "[/color][color=#007700]); } } return [/color][color=#0000bb]d[/color][color=#007700]; }}public class [/color][color=#0000bb]trycatch [/color][color=#007700]{ [/color][color=#0000bb]double a[/color][color=#007700],[/color][color=#0000bb]b[/color][color=#007700]; public [/color][color=#0000bb]void nhaptt[/color][color=#007700](){ [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print([/color][color=#dd0000]"nhap a: "[/color][color=#007700]); [/color][color=#0000bb]a[/color][color=#007700]=[/color][color=#0000bb]nhapdl[/color][color=#007700].[/color][color=#0000bb]nhapdouble[/color][color=#007700](); [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].print([/color][color=#dd0000]"nhap b: "[/color][color=#007700]); [/color][color=#0000bb]b[/color][color=#007700]=[/color][color=#0000bb]nhapdl[/color][color=#007700].[/color][color=#0000bb]nhapdouble[/color][color=#007700](); } public [/color][color=#0000bb]void xuly[/color][color=#007700](){ if([/color][color=#0000bb]a[/color][color=#007700]==[/color][color=#0000bb]0[/color][color=#007700]&&[/color][color=#0000bb]b[/color][color=#007700]==[/color][color=#0000bb]0[/color][color=#007700]){ [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"phuong trinh vo so nguyen thuoc r!!"[/color][color=#007700]);} else if([/color][color=#0000bb]a[/color][color=#007700]==[/color][color=#0000bb]0[/color][color=#007700]&&[/color][color=#0000bb]b[/color][color=#007700]!=[/color][color=#0000bb]0[/color][color=#007700]){ [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"phuong trinh vo nghiem!!"[/color][color=#007700]);} else{ [/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]out[/color][color=#007700].[/color][color=#0000bb]println[/color][color=#007700]([/color][color=#dd0000]"phuong trinh co nguyen duy nhat: "[/color][color=#007700]+(-[/color][color=#0000bb]b[/color][color=#007700]/[/color][color=#0000bb]a[/color][color=#007700])); } } public static [/color][color=#0000bb]void main[/color][color=#007700]([/color][color=#0000bb]string[/color][color=#007700][] [/color][color=#0000bb]args[/color][color=#007700]){ [/color][color=#0000bb]trycatch tryc[/color][color=#007700]=new [/color][color=#0000bb]trycatch[/color][color=#007700](); [/color][color=#0000bb]tryc[/color][color=#007700].[/color][color=#0000bb]nhaptt[/color][color=#007700](); [/color][color=#0000bb]tryc[/color][color=#007700].[/color][color=#0000bb]xuly[/color][color=#007700](); }}[/color] 
    </blockquote></div>
    </div>
    </div>

Trang 1 của 4 123 ... CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •