sách gpt4 ăn đã đi

Xử lý ngoại lệ PHP

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 10009 100
mua khóa gpt4 giày nike

Xử lý ngoại lệ được sử dụng để thay đổi luồng thông thường của tập lệnh khi xảy ra tình trạng lỗi (ngoại lệ) được chỉ định. Tình huống này được gọi là một ngoại lệ.

Khi một ngoại lệ được kích hoạt, nó thường xảy ra:


Tùy thuộc vào tình huống, bộ xử lý có thể khởi động lại việc thực thi mã từ trạng thái mã đã lưu, chấm dứt thực thi tập lệnh hoặc tiếp tục thực thi tập lệnh từ một vị trí khác trong mã. Chúng tôi sẽ hiển thị các phương pháp xử lý lỗi khác nhau:
Lưu ý: Chỉ nên sử dụng ngoại lệ trong các tình huống có lỗi và không nên sử dụng để chuyển sang vị trí khác trong mã tại một điểm được chỉ định.
Nếu ngoại lệ không bị bắt và không được xử lý tương ứng bằng cách sử dụng set_Exception_handler(), thì một lỗi nghiêm trọng (lỗi nghiêm trọng) sẽ xảy ra và thông báo lỗi Ngoại lệ chưa được bắt (ngoại lệ chưa được bắt) sẽ xuất hiện. Hãy thử ném một ngoại lệ mà không bắt nó:
Lỗi nghiêm trọng: Ngoại lệ chưa được phát hiện Ngoại lệ
với thông báo Giá trị phải bằng 1 hoặc thấp hơn trong C:webfoldertest.php:6
Dấu vết ngăn xếp: #0 C:webfoldertest.php(12):
checkNum(28) #1 {main} được ném vào C:webfoldertest.php trên dòng 6
Thử - Các hàm sử dụng ngoại lệ phải nằm trong khối thử. Nếu không có ngoại lệ nào được kích hoạt, mã sẽ tiếp tục thực thi như bình thường. Nhưng nếu một ngoại lệ được kích hoạt, một ngoại lệ sẽ được ném ra. Ném - chỉ định cách kích hoạt ngoại lệ. Mỗi lần ném phải tương ứng với ít nhất một lần bắt. Catch - Khối bắt bắt ngoại lệ và tạo một đối tượng chứa thông tin ngoại lệ. Hãy kích hoạt một ngoại lệ:
//Nếu ngoại lệ được ném ra, văn bản này sẽ không được hiển thị
echo Nếu bạn thấy điều này, số là 1 hoặc thấp hơn
}

//bắt ngoại lệ
catch(Ngoại lệ $e)
{
echo Tin nhắn: .$e- getMessage();
}
Đoạn mã trên sẽ gặp lỗi tương tự như sau:
Tuy nhiên, để tuân theo nguyên tắc mỗi lần ném phải tương ứng với một lần bắt, bạn có thể thiết lập trình xử lý ngoại lệ cấp cao nhất để xử lý các lỗi bị bỏ sót.
Tạo trình xử lý ngoại lệ tùy chỉnh rất đơn giản. Chúng tôi chỉ đơn giản tạo một lớp chuyên biệt có các hàm có thể được gọi khi có ngoại lệ xảy ra trong PHP. Lớp này phải là phần mở rộng của lớp ngoại lệ. Lớp ngoại lệ tùy chỉnh này kế thừa tất cả các thuộc tính của lớp ngoại lệ của PHP và bạn có thể thêm các hàm tùy chỉnh vào nó. Hãy bắt đầu bằng cách tạo lớp ngoại lệ:
//thông báo lỗi
$errorMsg = Lỗi trên dòng .$this- getLine(). trong .$this- getFile()
. : b .$this- getMessage(). /b không phải là địa chỉ E-Mail hợp lệ
trả về $errorMsg;
}
}

$email = ai đó@ví dụ...com

thử
{
//kiểm tra xem
nếu(filter_var($email, FILTER_VALIDATE_EMAIL) === SAI)
{
//ném ngoại lệ nếu email không hợp lệ
ném ngoại lệ customException mới ($email);
}
}

bắt (customException $e)
{
//hiển thị thông báo tùy chỉnh
echo $e- errorMessage();
}
Lớp mới này là bản sao của lớp ngoại lệ cũ, cùng với hàm errorMessage(). Chỉ vì nó là bản sao của lớp cũ nên nó kế thừa các thuộc tính và phương thức từ lớp cũ và chúng ta có thể sử dụng các phương thức của lớp ngoại lệ, chẳng hạn như getLine(), getFile() và getMessage(). Giải thích ví dụ: Đoạn mã trên đưa ra một ngoại lệ và bắt nó thông qua một lớp ngoại lệ tùy chỉnh:
Lớp customException() được tạo như một phần mở rộng của lớp ngoại lệ cũ. Bằng cách này, nó kế thừa tất cả các thuộc tính và phương thức của lớp ngoại lệ cũ. Tạo hàm errorMessage(). Nếu địa chỉ email không hợp lệ, chức năng này sẽ trả về thông báo lỗi. Đặt biến $email thành chuỗi địa chỉ email không hợp lệ. Khối mã thử được thực thi và một ngoại lệ được đưa ra do địa chỉ e-mail không hợp lệ. Khối bắt bắt ngoại lệ và hiển thị thông báo lỗi.
Bạn có thể sử dụng nhiều khối mã if..else hoặc khối mã chuyển đổi hoặc lồng nhiều ngoại lệ. Những ngoại lệ này có thể sử dụng các lớp ngoại lệ khác nhau và trả về các thông báo lỗi khác nhau:
//thông báo lỗi
$errorMsg = Lỗi trên dòng .$this- getLine(). trong .$this- getFile()
. : b .$this- getMessage(). /b không phải là địa chỉ E-Mail hợp lệ
trả về $errorMsg;
}
}

$email = someone@example.com

thử
{
//kiểm tra xem
nếu(filter_var($email, FILTER_VALIDATE_EMAIL) === SAI)
{
//ném ngoại lệ nếu email không hợp lệ
ném ngoại lệ customException mới ($email);
}
//kiểm tra ví dụ trong địa chỉ email
nếu(strpos($email, ví dụ) !== SAI)
{
throw new Exception( $email là một ví dụ e-mail
}
}

bắt (customException $e)
{
echo $e- errorMessage();
}

catch(Ngoại lệ $e)
{
echo $e-getMessage();
}

Lớp customException() được tạo như một phần mở rộng của lớp ngoại lệ cũ. Bằng cách này, nó kế thừa tất cả các thuộc tính và phương thức của lớp ngoại lệ cũ. Tạo hàm errorMessage(). Nếu địa chỉ email không hợp lệ, chức năng này sẽ trả về thông báo lỗi. Đặt biến $email thành một chuỗi là địa chỉ email hợp lệ nhưng chứa ví dụ về chuỗi. Thực thi khối mã thử và sẽ không có ngoại lệ nào được đưa ra trong điều kiện đầu tiên. Vì e-mail chứa ví dụ về chuỗi nên điều kiện thứ hai sẽ kích hoạt một ngoại lệ. Khối bắt bắt ngoại lệ và hiển thị thông báo lỗi thích hợp. Nếu lớp customException ném ra một ngoại lệ, nhưng customException không bị bắt, chỉ có ngoại lệ cơ sở bị bắt, ngoại lệ đó sẽ được xử lý tại đó.
Đôi khi, khi một ngoại lệ được đưa ra, bạn có thể muốn xử lý nó khác với tiêu chuẩn. Ngoại lệ có thể được ném lại vào khối bắt. Tập lệnh sẽ ẩn lỗi hệ thống khỏi người dùng. Lỗi hệ thống có thể quan trọng đối với người lập trình nhưng người dùng lại không quan tâm đến chúng. Để giúp người dùng dễ dàng hơn, bạn có thể ném lại ngoại lệ bằng thông báo thân thiện với người dùng:
//thông báo lỗi
$errorMsg = $this- getMessage(). không phải là địa chỉ E-Mail hợp lệ.
trả về $errorMsg;
}
}

$email = someone@example.com

thử
{
thử
{
//kiểm tra ví dụ trong địa chỉ email
nếu(strpos($email, ví dụ) !== SAI)
{
//ném ngoại lệ nếu email không hợp lệ
ném ngoại lệ mới ($email);
}
}
catch(Ngoại lệ $e)
{
//ném lại ngoại lệ
ném ngoại lệ customException mới ($email);
}
}

bắt (customException $e)
{
//hiển thị thông báo tùy chỉnh
echo $e- errorMessage();
}

Lớp customException() được tạo như một phần mở rộng của lớp ngoại lệ cũ. Bằng cách này, nó kế thừa tất cả các thuộc tính và phương thức của lớp ngoại lệ cũ. Tạo hàm errorMessage(). Nếu địa chỉ email không hợp lệ, chức năng này sẽ trả về thông báo lỗi. Đặt biến $email thành một chuỗi là địa chỉ email hợp lệ nhưng chứa ví dụ về chuỗi. Khối thử chứa một khối thử khác để có thể ném lại ngoại lệ. Vì e-mail chứa ví dụ về chuỗi nên ngoại lệ sẽ được kích hoạt. Khối mã bắt bắt ngoại lệ và ném lại customException. CustomException bị phát hiện và thông báo lỗi được hiển thị. Nếu ngoại lệ không bị bắt trong khối thử hiện tại, nó sẽ tìm khối bắt ở cấp cao hơn.
Trong đoạn mã trên, không có khối bắt nhưng trình xử lý ngoại lệ cấp cao nhất được kích hoạt. Hàm này nên được sử dụng để bắt tất cả các ngoại lệ chưa được phát hiện.
10009 100 3
Đề xuất bài viết: PHPJSON
Đề xuất bài viết: Bộ lọc PHP
Đề xuất bài viết: Email bảo mật PHP
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress