1. Trang chủ
  2. » Thể loại khác

...C10. Exception Handling.pdf

11 131 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 295,99 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Parse Console.ReadLine ; Error n X ử lý nhữ ng sai lầm và nhữ ng điều kiện bất bình thư ờ ng... n T hụ lý biệt lệ trong khối T hụ lý biệt lệ trong khối catch... C huổi của biệt lệ hiện

Trang 1

N gôn ngữ C #

T rần V ăn T èo tvteo@agu.edu.vn

Trang 2

T hụ lý B iệt lệ (E xception H andler)

n Đ ối tư ợ ng exception

n S ử dụng tryS ử dụng try catch.catch

n N hiều khối catch

n C âu lệnh throw

M ệnh đề finally

C onsole.W riteL ine(“N hập vào m ột số”);

int i = int Parse( Console.ReadLine( ) ); Error

n X ử lý nhữ ng sai lầm và nhữ ng điều kiện bất bình

thư ờ ng

Trang 3

Đ ối tư ợ ng E xception

Exception

SystemException

OutOfMemoryException IOException

NullReferenceException ApplicationException

Trang 4

S ử dụng khối lệnh

n Đ ặt code trong khối Đ ặt code trong khối try try.

n T hụ lý biệt lệ trong khối T hụ lý biệt lệ trong khối catch catch.

try {

Console.WriteLine ( “N hập vào m ột số” ) ;

int i = int Parse ( Console.ReadLine( ) ) ;

}

catch ( OverflowException caught )

{

Console.WriteLine ( caught.Message ) ;

}

Code Error handling

Trang 5

N hiều khối

n M ỗi khối M ỗi khối catch catch bắt m ột lớ p biệt lệ bắt m ột lớ p biệt lệ

n B iệt lệ dẫn xuất phải thự c hiện trư ớ c biệt lệ cơ sở

try {

Console.WriteLine ( “N hập vào m ột số” ) ;

int i = int Parse ( Console.ReadLine( ) ) ;

}

catch ( OverflowException caught ){

Console.WriteLine ( caught );

}

catch ( DivideByZeroException caught ){

Console.WriteLine ( caught );

}

Trang 6

C âu lệnh

n B áo động m ột điều kiện bất bình thư ờ ng khi đang thi

hành, và tống ra m ột biệt lệ

n G ở i m ột thông điệp biệt lệ có ý nghĩa

if ( minute < 0 || minute > 60 )

{

throw new InvalidTimeException ( minute +

“ is not a valid m inute.” ) ;

// !! Not reached !!

}

throw [expression];

Trang 7

M ệnh đề

n C ác lệnh trong khối C ác lệnh trong khối finally finally luôn đư ợ c thự c hiện.luôn đư ợ c thự c hiện

n D ùng để “dọn dẹp” các tài nguyên nào chiếm dụng

bộ nhớ trong khối

bộ nhớ trong khối try try

try {

Console.WriteLine ( “Đ ọc tập tin tại đây.” ) ;

}

catch ( IOException e ){

Console.WriteLine ( “L ổi khi m ở tập tin.” ) ;

}

finally {

Console.WriteLine ( “Đ óng tập tin tại đây.” ) ;

}

Trang 8

L ớ p S ystem E xception

n Properties

•• HelpLink K ết nối về tập tin help gắn liền vớ i biệt lệ.

•• InnerException Đ ối tư ợ ng E xception hiện hành.

•• Message T hông điệp m ô tả biệt lệ hiện hành.

•• Source T ên ứ ng dụng hoặc đối tư ợ ng gây ra biệt lệ.

•• ToString O verridden C huổi của biệt lệ hiện hành.

catch ( IOException e ){

Console.WriteLine ( e.Message ) ; Console.WriteLine ( e );

}

Trang 9

T ạo m ột biệt lệ.

n P hải đư ợ c dẫn xuất từ S ystem A plicationE xception

public class SVException : System.ApplicationException {

public SVException ( string msg ) : base ( msg ){ } } //End SVException

public void InsertSV ( ){

if( _SoLuong == _MaxSV ){

SVException e =

new SVException ( “L ớ p này đã đủ sinh viên!” ) ;

throw e ; }

} //End InsertSV

try {

sv.InsertSV( );

}

catch ( SVException e ){

Trang 10

T ung lại biệt lệ.

K hối catch sau khi sử a sai rồi lại tung biệt lệ cho khối try nằm ngoài.

public void FuncA ( ){

throw new DivideByZeroException (“ L ổi chia cho zero ”) ;

}

public void FuncB ( ){

try{

FuncA ( ) }catch( ArithmeticException e ){ throw ; }

}

public void FuncC ( ){

try{

FuncB ( ) }catch( DivideByZeroException e ){

Console WriteLine ( e.Message ) ;

Trang 11

Q & A

Ngày đăng: 05/11/2017, 03:41

TỪ KHÓA LIÊN QUAN

w