백엔드 개발 PHP 튜토리얼 PHP异常处理、错误报告、日志详解

PHP异常处理、错误报告、日志详解

Apr 01, 2017 pm 03:10 PM

php中我们会经常碰到一些错误要去处理,下面我来总结php中的异常处理错误报告、日志一些内容总结与介绍。

错误处理

1.语法错误

2.运行时错误

3.逻辑错误

错误报告:

错误:E_ERROT 程序会中断,发生错误

警告:E_WARNING 程序不会中断,但可能部分功能没有实现

注意:E_NOTICE 不会影响程序,完全可以屏蔽

开发时输出所有错误报告,运行时禁用所有错误报告

将错误写入到日志中:

1.开启日志(php.ini中error_log = On),且关闭错误报告,错误(如果发生,但没有允许直接输出)日志将会被记录

2.如不指定日志路径,将默认写入web服务器日志中

设置错误报告:

error_reporting(E_ALL) //输出所有报告
로그인 후 복사

修改php.ini配置文件

ini_set(“display_errors”,off) //修改为不显示错误报告
ini_get(“upload_max_filesize”) //读取配置文件中上传文件大小限制
로그인 후 복사

意外,是在程序运行中发生的意料之外的事,使用异常改变脚本正常流程异常处理:

PHP 5 提供了一种新的面向对象的错误处理方法。

异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。

当异常被触发时,通常会发生:

•当前代码状态被保存
•代码执行被切换到预定义的异常处理器函数
•根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本
我们将展示不同的错误处理方法:

•异常的基本使用
•创建自定义的异常处理器
•多个异常
•重新抛出异常
•设置顶层异常处理器

语法:

try{
可能出错的代码
throw new Exception(“异常信息”)
}catch(Exception $e[异常对象]){
后面的正常代码
}
로그인 후 복사

function   runtimeErrorHandler($level,$string) 
{
//自定义错误处理时,手动抛出一个异常实例
//为了把错误级别代码也显示出来,这里拼接了错误代码和错误信息作为新的错误信息来传递。
throw   new   Exception($level.'|'.$string); 
} 
//设置自定义错误处理函数
set_error_handler( "runtimeErrorHandler");
try
{
$a=2/0;  
//这里制造一个以前无法截获的除0错误
}
catch(Exception $e)
{
echo '错误信息:', $e->getMessage();
//显示错误,这里就可以看到错误级别和错误信息了“2|Division by zero”
}
로그인 후 복사

2.如果try中代码有异常,则抛出一个异常对象,在catch()中捕捉$e就指向异常对象。再继续向下执行1.如果try中代码没有异常,则正常执行。

3.$e->getMessage()获取异常信息

自定义异常类

作用:写一些方法解决特定异常(内置的类没有处理方法)

1.自定义异常类,必须是Exception(内置类)的子类

2.Exception类中只有构造方法和toString()可以重写

3.定义需要的方法

异常的规则

•需要进行异常处理的代码应该放入 try 代码块内,以便捕获潜在的异常。
•每个 try 或 throw 代码块必须至少拥有一个对应的 catch 代码块。
•使用多个 catch 代码块可以捕获不同种类的异常。
•可以在 try 代码块内的 catch 代码块中再次抛出(re-thrown)异常。

 以上就是PHP异常处理、错误报告、日志详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!

http://www.bkjia.com/PHPjc/633087.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633087.htmlTechArticle在php中我们会经常碰到一些错误要去处理,下面我来总结php中的异常处理、错误报告、日志一些内容总结与介绍。 错误处理: 1.语法错误...


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

이번 장에서는 라우팅과 관련된 다음과 같은 주제를 학습하겠습니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

See all articles