Tải bản đầy đủ (.pptx) (21 trang)

BTKN TH201 error handling – chiến lược xử lý lỗi trong SQL server

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (406.97 KB, 21 trang )

BÀI TẬP KỸ NĂNG
MÔN HỌC : HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – TH201

HỌC VIÊN THỰC HIỆN
Họ & tên: PHẠM NGUYỄN BẢO NGUYÊN
Lớp: QD11
Chuyên ngành: Công Nghệ Thông Tin
Email:


ĐỀ TÀI
Error Handling – Chiến lược xử lý lỗi trong SQL Server
Xử lý lỗi là vấn đề không thể bỏ qua đối với các ngôn ngữ lập trình cũng như các phần mềm ứng dụng. Điều này cũng đúng đối với người lập trình cơ sở
dữ liệu bằng ngôn ngữ SQL.
Với vai trò là một chuyên viên lập trình cơ sở dữ liệu, bạn hãy trình bày chiến lược xử lý lỗi trong SQL Server bằng việc tìm hiểu và phân tích các vấn đề:
- Thông báo lỗi hệ thống và thông báo lỗi do người dùng định nghĩa trong SQL Server.
- Cài đặt mã nguồn đưa ra thông báo lỗi
- Bẫy lỗi và xử lý lỗi
- Một số ứng dụng có cài đặt Error Handling và ý nghĩa của việc xử lý lỗi trong các ứng dụng này


PHẦN MỞ ĐẦU
Như các bạn đã biết bất kỳ một đơn vị nhỏ hay lớn nào phần Cơ Sở Dữ Liệu (CSDL) là phần quan trọng nhất.
Tuy nhiên thì khi xây dựng, thiết kế, vận hành CSDL thì không thể trách khỏi những sai sót, các sự cố ngoài ý muốn, hay phát sinh các lỗi làm ảnh
hưởng đến việc cung cấp thông tin chính xác cho người dùng.
Vì thế với vai trò là một người lập trình, quản trị hệ thống bạn cần phải lưu tâm đến các vấn đề sau đây

-

Thống kê các lỗi thường gặp và các giải pháp xử lý.


-

Cài đặt các thông báo lỗi làm sao cho phù hợp với hệ thống và người sử dụng.

-

Cài đặt mã nguồn thông báo lỗi tự động cho hệ thống.

-

Tìm kiếm các công cụ hỗ trợ cho việc xử lý các lỗi của hệ thống.

-

Tối ưu hóa hệ thống, hạn chế các sai sót, sự cố khi vận hành.

-

Cập nhật và kiểm tra hệ thống thường xuyên.


MỤC TIÊU TRÌNH BÀY
1

2

Thông báo lỗi hệ thống và thông báo lỗi do người dùng định nghĩa trong SQL Server.

Cài đặt mã nguồn đưa ra thông báo lỗi


3

Bẫy lỗi và xử lý lỗi

4

Một số ứng dụng có cài đặt Error Handling và ý nghĩa của việc xử lý lỗi trong các ứng dụng này


NỘI DUNG TRÌNH BÀY
1

Giới thiệu Error Handling

2

Cài
đặt báo
ErrorlỗiHandling
SQL Sever
Thông
hệ thốngtrong
và thông
báo lỗi do người dùng định nghĩa trong SQL Server.

3

4

54


Cài đặt mã nguồn đưa ra thông báo lỗi

Một số
Bẫy
lỗi ứng
và xử
dụng
lý lỗicó cài đặt Error Handling

Ý nghĩa
củadụng
việc có
sử cài
dụng
Một
số ứng
đặtError
ErrorHandling
Handling và ý nghĩa của việc xử lý lỗi trong các ứng dụng này


Giới Thiệu Error Handling

Error Handling (Xử lý lỗi)

- Là tiến trình bắt các lỗi được tạo bởi chương trình mà bạn thiết lập và sau đó thực hiện các hành động thích hợp để thông báo cho người dùng, và để cho người quản trị xử lý.

- Trong SQL Sever chúng ta có thể thấy xử lý lỗi bằng các công cụ sau:


+ SQL Profiler hay SQL Server profiler có khả năng chụp tất cả các sự kiện hay hoạt động diễn ra trên một SQL Server và lưu lại dưới dạng file text rất hữu dụng trong
việc kiểm soát hoạt động của SQL Server. công cụ này rất hữu ích cho DBA (Database Administration) theo dõi các câu lệnh TSQL(SQL, DDL, DML) truy cập từ ứng dụng
vào Database Engine. Dựa vào đó DBA (Database Administration) có thể phân tích, đánh giá và cải thiện tốc độ xử lý Database.
+ SQL Server Extended Event là một hệ thống xử lý sự kiện chung cho các hệ thống máy chủ
+ TRY.....CATCH và các hàm RAISERROR (T-SQL): Được dùng để đưa ra các thông báo do SQL Sever quy định trong sys.messages hoặc chúng ta cũng có thể tự thiết lập
cho hệ thống của mình.


Thông báo lỗi hệ thống và thông báo lỗi do người dùng định
nghĩa trong SQL Server.

1.

Thông báo lỗi hệ thống ( System – definded error ) các lỗi quy định sẵn trong SQL Sever
. Bảng lỗi của hệ thống
Truy xuất bằng câu lệnh : select * from sys.messages
. Các thông số của 1 lỗi trong SQL Sever
+ Message_id: mã số duy nhất của một lỗi (mã số này không được trùng lặp nhau)
+ Language_id: mã số ngôn ngữ => vd: 1033 _ là mã ngôn ngữ Tiếng Anh.
( tham khảo thêm bảng language_id )
. Severity: có các giá trị từ 0 – 25 thể hiện mức độ nghiêm trọng của lỗi được chia thành 3 phần.
+ 0 - 10

: Lỗi thông tin người dùng nhập vào sai

+ 11 - 16

: Được tạo bởi người dùng và có thể được người dùng sửa chữa.

+ 17 - 25


: Mức độ nghiêm trọng, cần thông báo ngay cho người quản trị hệ thống.

. Is_event_logged: Có cần ghi vào log của Windows hay không? (giá trị 1/0)
. Text: Mô tả nội dung của lỗi dựa trên mã ngôn ngữ hiển thị


BẢNG LANGUAGE_ID
MÃ NGÔN NGỮ


Thông báo lỗi hệ thống và thông báo lỗi do người dùng định
nghĩa trong SQL Server.
2. Thông báo lỗi do người dùng định nghĩa ( User – definded error ) tạo ra bởi người dùng
-- Tạo một thông báo lỗi -USE master
GO
EXEC sp_addmessage
<<Massega_id>>,
<<Severity>>,
N’<<Nội dung thông báo lỗi>>
GO


Thông báo lỗi hệ thống và thông báo lỗi do người dùng định
nghĩa trong SQL Server.

CÂU HỎI TƯƠNG TÁC
CÂU HỎI:
Câu lệnh nào để hiển thị các thông báo lỗi đã được setup trong SQL?


TRẢ LỜI
Để hiển thị các thông báo lỗi đã được setup trong SQL ta có thể sử dụng câu lệnh
select * from sys.message


Thông báo lỗi hệ thống và thông báo lỗi do người dùng định
nghĩa trong SQL Server.

CÂU HỎI TƯƠNG TÁC
CÂU HỎI:
Để cài đặt một thông báo lỗi trong SQL ta có thể sử dụng câu lệnh nào?
TRẢ LỜI
USE master
GO
EXEC sp_addmessage
<<Massages_id>>,
<<Severity>>,
N’<<Nội dung thông báo lỗi>>
GO


CÀI ĐẶT MÃ NGUỒN
ĐƯA RA THÔNG BÁO LỖI

Tìm hiểu @@error là gì?

+ @@error là một biến Global, nó cho ta biết được số của lỗi (number error).
+ @@error thường được sử dụng trong các phiên bản SQL trước phiên bản SQL Sever 2005 ( chủ yếu trong SQL Sever 2000 )
+ @@error thường được sử dụng sau 1 câu lệnh để phát hiện lỗi.



CÀI ĐẶT MÃ NGUỒN
ĐƯA RA THÔNG BÁO LỖI

Cách sử dụng @@error

+ Sử dụng trong các câu lệnh Insert, Delete, Update, Select….
+ Gán @@error vào 1 biến tạm, khi cần dùng sẽ gọi biến tạm đó
+ Nếu không có lỗi @@error = 0, Nếu có lỗi thì @@error sẽ cho giá trị khác 0 và hiển thị message_id đó.


CÀI ĐẶT MÃ NGUỒN
ĐƯA RA THÔNG BÁO LỖI

CÂU HỎI TƯƠNG TÁC
Ưu điểm & nhược điểm của @@Error
TRẢ LỜI

Ưu điểm: có thông báo màu giúp người sử dụng dể nhận biết

-

Thông báo màu đỏ là do hệ thống quy định

-

Thông báo màu đen là do người dùng cài đặt

Nhược điểm: bẫy lỗi @@Error có thể lặp đi lặp lại, có thể tiềm ẩn các lỗi, dòng code không dể hiểu như TRY…CATCH



BẨY LỖI & XỬ LÝ LỖI

-

Trong SQL Sever bẫy lỗi và xử lý lỗi là quá trình quan trọng, nó giúp các câu lệnh được rõ ràng hơn.

-

Trong các phiên bản SQL Sever 2005 trở lên về sau thì người ta sử dụng TRY…….CATCH nhiều hơn.

-

TRY……….CATCH dùng để bẩy lỗi trên một câu lệnh hoạc nhiều câu lệnh và có thể lồng vào nhau.

-

Cấu trúc TRY………CATCH

BEGIN TRY

* Khối lệnh trong Try nếu đúng sẽ tiếp tục thực thi, nếu gặp lỗi sẽ chuyển qua Catch để

<<Sql_statement | statement_block>>

tiến hành xử lý lỗi và xử lý thế nào thì do khối câu lệnh trong Catch quy định

END TRY
BEGIN CATCH
<<Sql_statement | statement_block>>

END CATCH


BẨY LỖI & XỬ LÝ LỖI


BẨY LỖI & XỬ LÝ LỖI

CÂU HỎI TƯƠNG TÁC
CÂU HỎI:
Hạn chế của Try…Catch
TRẢ LỜI
Không bắt được các lỗi biên dịch.
Nếu kết nối bị lỗi thì Try...Catch không có tác dụng thực thi


MỘT SỐ ỨNG DỤNG CÓ CÀI ĐẶT
ERROR HANDLING

- Ứng dụng Calculator trong windows

- Action đổi tên file trong windows


MỘT SỐ ỨNG DỤNG CÓ CÀI ĐẶT
ERROR HANDLING

CÂU HỎI TƯƠNG TÁC
CÂU HỎI:
Ý nghĩa của việc xử lý lỗi trong 2 ứng dụng trên là gi?

TRẢ LỜI

-

Trong ứng dụng calculator: đưa ra thông báo lỗi khi thực hiện những phép tính hoặc nhập các số để
thực hiện phép tính không đúng với quy tắc toán học.

-

Trong Windows: đưa ra thông báo lỗi theo quy định của Microsoft. Vì trong windows đã quy định chỉ
sử dụng tên này cho các driver thiết bị của hệ thống.


KẾT LUẬN



Bẫy lỗi và xử lý lỗi là việc rất quan trọng trong lập trình.



Việc xử lý lỗi trong SQL rất quan trọng khi kết hợp với các ứng dụng thực tế



Có nhiều cách để bẫy lỗi ( sử dụng Try...Catch, @@error...) nhưng hiện nay thông dụng nhất, dễ sử
dụng nhất và dễ bảo trì code nhất là sử dụng câu lệnh Try...Catch





×