Tài nguyên dạy học

Thành viên trực tuyến

1 khách và 0 thành viên

Hỗ trợ trực tuyến

Điều tra ý kiến

Bạn thấy website của chúng tôi như thế nào?
Đẹp
Bình thường
Đơn điệu
Ý kiến khác

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Ảnh ngẫu nhiên

    Video_13cailuongEnglish.flv Film_6_The_gioi_tu_nhien.flv CAU_TRUC_BAC_1.gif DSCN1679.jpg DSCN2125.jpg Kachiusa____YouTube1.flv TRAI_TIM_NHIEU_NGAN__Nguyen_Vu__YouTube.flv Trieu_doa_hong__Alla_Bugacheva__YouTube.flv IMG_1337.jpg IMG_1331.jpg Doi_b__YouTube.flv IMG01177.jpg FLASH_2011.swf Chom_chom_ly_qua_pha__Danh_hai_Chien_Thang__YouTube.flv Nguoi_thay_nam_xua.mp3 50_ban_thang_dep_nhat_lich_su.flv Toan_61.flv Vet_cham_tren_khuon_mat.flv

    lâpk trình

    Wait
    • Begin_button
    • Prev_button
    • Play_button
    • Stop_button
    • Next_button
    • End_button
    • 0 / 0
    • Loading_status
    Nhấn vào đây để tải về
    Báo tài liệu có sai sót
    Nhắn tin cho tác giả
    (Tài liệu chưa được thẩm định)
    Nguồn:
    Người gửi: Đặng Anh Tuấn (trang riêng)
    Ngày gửi: 23h:52' 09-09-2010
    Dung lượng: 70.5 KB
    Số lượt tải: 6
    Số lượt thích: 0 người
    Chương 10: Bắt ngoại lệ
    Ngoại lệ (Exception)
    Exception gồm:
    Mô tả lỗi có thể xảy ra.
    Đoạn mã lệnh trong đó xảy ra exception, nằm trong khối try{}
    Những thứ gây ra exception nằm trong lệnh throw
    Mã lệnh bắt lỗi trong catch
    Ví dụ
    Trong ví dụ về stack, lỗi có thể xảy ra khi:
    Đẩy nhiều phần tử vào stack
    Lấy phần tử ra khỏi stack rỗng
    Lỗi có thể xảy ra là dạng out-of-bound
    Ví dụ …
    #include
    #include
    const int STACK_SIZE = 100;
    class stack {
    protected:
    int count;
    private:
    int data[STACK_SIZE];
    public:
    stack(void);
    void push(const int item);
    int pop(void);
    };
    Ví dụ …
    inline stack::stack(void)
    {
    count = 0;
    }
    inline void stack::push(const int item)
    {
    data[count] = item;
    count++;
    }
    inline int stack::pop(void)
    {
    count--;
    return (data[count]);
    }
    Ví dụ …
    const int WHAT_MAX = 80;
    class bound_err {
    public:
    char what[WHAT_MAX];
    bound_err(char *_what) {
    if (strlen(_what) < (WHAT_MAX -1))
    strcpy(what, _what);
    else
    strcpy(what, "Internal error: _what is too long");
    }
    };
    Ví dụ …
    class b_stack: public stack {
    public:
    void push(const int item) throw(bound_err);
    int pop(void) throw(bound_err);
    };
    Ví dụ …
    inline void b_stack::push(const int item) throw(bound_err)
    {
    if (count >= STACK_SIZE)
    {
    bound_err overflow("Push overflows stack");
    throw overflow;
    }
    stack::push(item);
    }
    inline int b_stack::pop(void) throw(bound_err)
    {
    if (count <= 0)
    {
    throw bound_err("Pop causes stack underflow");
    }
    return (stack::pop());
    }
    Ví dụ …
    b_stack test_stack;
    void push_a_lot(void) {
    for (int i = 0; i < 5000; i++)
    test_stack.push(i);
    }
    main ()
    {
    try
    {
    push_a_lot();
    }
    catch (bound_err &err)
    {
    cout << "Error: Bounds exceeded ";
    cout << "Reason: " << err.what << ` `;
    exit (8);
    }
    catch (...)
    {
    cout << "Error: Unexpected exception occurred ";
    exit (8);
    }
    return (0);
    }
     
    Gửi ý kiến