Xử lí ngoại lệ phần 2

Chia sẻ: Tuan Bui Nghia | Ngày: | Loại File: PDF | Số trang:8

0
34
lượt xem
3
download

Xử lí ngoại lệ phần 2

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ
Lưu

Nội dung Text: Xử lí ngoại lệ phần 2

  1. Ví dụ 12.4: Sử dụng một vài hàm toán học. ----------------------------------------------------------------------------- using System; namespace Programming_CSharp { public class Tester { public static void Main() { int val2; char ch; for(double ctr = 0.0; ctr
  2. The image part w ith relationship ID rId4 w as not found in the file. ----------------------------------------------------------------------------- Vòng lặp đầu tiên thực hiện thông qua một biến lặp là một giá trị double, mỗi bước lặp tăng . 2. Giá trị Sin được lấy thông qua việc sử dụng hàm Math.Sin. Do giá trị Sin từ -1 đến 1 và để cho dễ hiển thị hơn, giá trị này được chuyển từ -10 đến 10. Để chuyển thành giá trị này thì ta nhân với 10 rồi sau đó thực hiện việc làm tròn bằng cách dùng hàm Round của Math. Kết quả của phép nhân và làm tròn là một giá trị từ -10 đến 10 được gán cho val2. Vòng lặp for thứ hai thực hiện việc xuất một ký tự ra màn hình.
  3. Lớp thao tác tập tin Khả năng để viết thông tin vào trong một tập tin hay đọc thông tin từ trong một tập tin có thể làm cho chương trình của chúng ta có nhiều hiệu quả hơn. Hơn nữa, có rất nhiều lần khi chúng ta muốn có khả năng làm việc với những tập tin hiện hữu. Phần tiếp sau chúng ta sẽ tìm hiểu những đặc tính cơ bản của việc thao tác trên tập tin. Điều này sẽ được theo sau bởi một khái niệm quan trọng của tập tin là luồng (stream). Sao chép một tập tin Một lớp tập tin tồn tại bên trong lớp cơ sở gọi là File, lớp này được định vị bên trong namespace System.OI. Lớp File chứa một số các phương thức tĩnh được sử dụng để thao tác trên tập tin. Thật vậy, tất cả các phương thức bên trong lớp File điều là tĩnh. Bảng 12.2 liệt kê những phương thức chính của lớp File. Lớp File Phương thức Mô tả AppendText Nối văn bản vào trong một tập tin Copy Tạo ra một tập tin mới từ tập tin hiện hữu
  4. Create Tạo ra một tập tin mới ở một vị trí xác định CreateText Tạo ra tập tin lưu giữ text Delete Xóa tập tin ở vị trí xác định. Tập tin phải hiện hữu nếu không sẽ phát sinh ra ngoại lệ. Exists Kiểm tra xem tập tin có thực sự hiện hữu ở vị trí nào đó. GetAttributes Lấy thông tin thuộc tính của tập tin. Thông tin này bao gồm: tập tin có bị nén hay không, tên thư mục, có thuộc tính ẩn, thuộc tính chỉ đọc, tập tin hệ thống... GetCreationTime Trả về ngày giờ tập tin được tạo ra GetLastAccessTime Trả về ngày giờ tập tin được truy cập lần cuối GetLastWriteTime Trả về ngày giờ tập tin được viết lần cuối Move Cho phép tập tin được di chuyển vào vị trí mới và đổi tên tập tin. Open Mở một tập tin tại vị trí đưa ra. Bằng việc mở tập tin này chúng ta có thể viết thông tin hay đọc thông tin từ nó. OpenRead Mở một tập tin hiện hữu để đọc OpenText Mở một tập tin để đọc dạng text OpenWrite Mở một tập tin xác định để viết SetAttributes Thiết lập thuộc tính cho tập tin SetCreationTime Thiết lập ngày giờ tạo tập tin SetLastAccessTime Thiết lập lại ngày giờ mà tập tin được truy cập lần cuối SetLastWriteTime Thiết lập ngày giờ mà tập tin được cập nhật lần cuối. Bảng 12.2 : Một số phương thức chính thao tác tập tin. Chương trình 12.5 sau minh họa việc sao chép một tập tin. Ví dụ 12.5: Sao chép một tập tin. ----------------------------------------------------------------------------- // file : filecopy.cs: sao chép một tập tin // sử dụng tham số dòng lệnh namespace Programming_CSharp
  5. { using System; using System.IO; public class Tester { public static void Main()
  6. { string[] CLA = Environment.GetCommandLineArgs(); if ( CLA.Length < 3) { Console.WriteLine(“Format: {0} orig-file new-file”, CLA[0]); } else { string origfile = CLA[1]; string newfile = CLA[2]; try Console.Write(“Copy...” { ); } File.Copy(origfile, newfile); catch (System.IO.FileNotFoundException) { Console.WriteLine(“\n{0} does not exist!”, origfile); return; } catch (System.IO.IOException) { Console.WriteLine(“\n{0} already exist!”, newfile); return; } catch (Exception e) { Console.WriteLine(“\nAn exception was thrown trying to copy file”); Console.WriteLine(); return; } Console.WriteLine(“...Done”); } } } } -----------------------------------------------------------------------------
  7. Chương trình thực hiện bằng cách sau khi biên dịch ra tập tin filecopy.exe ta gọi thực hiện tập tin này với tham số dòng lệnh như sau: filecopy.exe filecopy.cs filecopy.bak Tập tin filecopy.cs đã hiện hữu và tập tin filecopy.bak thì chưa hiện hữu cho đến khi lệnh này thực thi. Sao khi thực thi xong chương trình tập tin filecopy.bak được tạo ra. Nếu chúng ta thực hiện chương trình lần thứ hai cũng với các tham số như vậy, thì chúng ta sẽ nhận được kết quả xuất như sau: Copy... filecopy.bak already exists! Nếu chúng ta thực hiện chương trình mà không có bất cứ tham số nào, hay chỉ có một tham số, chúng ta sẽ nhận được kết quả như sau : Format d:\working\filecopy\filecopy.exe orig-file new-file Cuối cùng, điều tệ nhất xảy ra là chúng ta thực hiện sao chép nhưng tập tin nguồn không tồn tại: Copy... filecopy.cs does not exist! Như chúng ta ta thấy tất cả các kết quả có thể có của chương trình minh họa 12.5 trên. Chương trình thực hiện việc sao chép một tập tin và nó kiểm tra tất cả các tình huống có thể có và thực hiện việc xử lý các ngoại lệ. Điều này cho thấy chương trình vừa đáp ứng được mặt logic của lập trình vừa đáp ứng được việc xử lý các ngoại lệ. Như chúng ta biết trong lệnh sau: string[] CLA = Environment.GetCommandLineArgs(); thực hiện việc lấy các tham số dòng lệnh được cấp cho chương trình. Lớp Environment này chúng ta đã tìm hiểu và đã sử dụng trong phần trước. Lệnh sau kiểm tra xem chương trình có nhận được ít hởn giá trị tham số dòng lệnh hay không. if ( CLA.Length < 3) { Console.WriteLine(“Format: {0} orig-file new-file”, CLA[0]);
  8. }
Đồng bộ tài khoản