php 이상 처리
다음은 자신의 인식 이다.
php 의 이상 은 기본적으로 이렇다.
<?php
class customException extends Exception
{
public function errorMessage()
{
//error message
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile()
.': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
return $errorMsg;
}
}
$email = "[email protected]";
try
{
//check if
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
{
//throw exception if email is not valid
throw new customException($email);
}
}
catch(Exception $e) {
echo "hi";
}
catch (customException $e)
{
//display custom message
echo $e->errorMessage();
}
?>
throw new Exception (...) 이 라면 다른 이상 을 구분 하고 싶 지 않다 는 뜻 이다.넓 은 범위 에서 catch 는 누가 생 겼 는 지 모 릅 니 다. (물론 입 니 다. 이 건 아 닙 니 다. 위의 프로그램 getline, getfile 은 어디서 이상 이 발생 했 는 지 알 수 있 기 때 문 입 니 다.)그러나 구분 하지 않 으 면 유형 별 이상 을 구분 할 수 없다.일반적인 잘못 인지 치 명 적 인 잘못 인지 구분 할 수 없다.
구분 하려 면 서로 다른 이상 유형 을 정의 해 야 한다.사용자 정의 가능.위의 코드 가 구현 되 었 다.
try 한 번 에 catch 여러 번 가능 합 니 다.부류 이상 은 부류 이상 을 받 아들 일 수 있다.그래서 여러 catch 의 배열 은 하위 클래스 가 앞 에 있어 야 합 니 다.자 류 를 뒤에 두 면 자 류 는 영원히 catch 를 생각 하지 마 세 요.
catch 처리 프로그램 에서 임의의 종류의 이상 을 다시 던 질 수 있 습 니 다.
여러 개의 try 를 끼 워 넣 을 수 있 습 니 다.전체 try.내부 적 으로 는 세밀 한 try 처리 도 가능 합 니 다.내부 에서 해결 할 수 있 는 잘못 은 전체 국면 에 던 져 해결 하지 않 는 다.
원칙: 던 지 는 것 이 있 으 면 반드시 잡 아야 한다.
php 이상 을 더 완전 하 게 나타 내 는 코드 는 다음 과 같 습 니 다.
<?php
class customException extends Exception
{
public function errorMessage()
{
//error message
$errorMsg = $this->getMessage().' is not a valid E-Mail address.';
return $errorMsg;
}
}
$email = "[email protected]";
try
{
try
{
//check for "example" in mail address
if(strpos($email, "example") !== FALSE)
{
//throw exception if email is not valid
throw new Exception($email);
}
}
catch(Exception $e)
{
//re-throw exception
throw new customException($email);
}
}
catch (customException $e)
{
//display custom message
echo $e->errorMessage();
}
?>
ps:
php 에서 반환 값 표징 프로그램 을 사용 하 는 것 이 잘못된 지 c + + 에 대해 장점 을 가지 고 싶 습 니 다.php 는 유형 을 엄격하게 구분 하지 않 습 니 다.반환 오류 return - 1.오류 가 없 으 면 데 이 터 를 정상적으로 되 돌려 줍 니 다.이렇게 하면 프로그램 이 잘못 되 었 는 지 여 부 를 판단 할 수 있다.c + + 에 서 는 그 럴 리 가 없어 요.데 이 터 를 되 돌려 주거 나 오류 코드 를 되 돌려 줍 니 다.c + + 반환 값 을 통 해 오 류 를 판단 하려 면 정말 원 하 는 데 이 터 를 매개 변수 목록 에 넣 을 수 밖 에 없습니다.불편 을 초래 하 다.
php 는 천연 적 인 장점 이 있 지만 반환 치 를 이용 하 는 것 은 불편 하 다.맨 안쪽 에 있 는 층 이 잘못 되 었 습 니 다. - 1 로 돌아 갑 니 다. 뒤의 층 마다 이 값 을 계속 전달 해 야 합 니 다.어렵 지 는 않 지만, 원래 이렇게 해 야 했다.하지만 실수 하기 쉬 울 수 있 습 니 다.이상 을 던 지 는 것 이 라면, 바로 해결 된다.층 마다 데 이 터 를 사용 할 때 - 1 여 부 를 판단 하지 않 아 도 됩 니 다.이렇게 하면 논리 가 더욱 분명 해 질 것 이다.결합 도가 떨어지다.c + + 에 대한 복음 입 니 다. 데 이 터 를 되 돌려 줄 수 있 습 니 다.
이상 을 사용 하려 면 상속 을 어떻게 하 는 지, 이상 류 는 어떤 방법 이 있 는 지, 상속 체계, 내 장 된 이상 유형 등 을 알 아야 한다.나머지 는 많이 쓰 는 거 야.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.