Socket_clear_error () 는 주로 이전 소켓 연결 또는 통신 중에 오류 플래그를 지우는 데 사용됩니다. 예외는 없지만 오류 상태를 재설정하므로 사용할 때 통화 타이밍을 고려해야합니다.
Try-Catch는 프로그램 실행 중에 예외를 포착하는 데 사용됩니다. 소켓 관련 작업에서 예외가 발생하면 캐치 블록은 예외를 받고 이에 따라 처리 할 수 있습니다. 객체 지향 소켓 클래스가 사용되거나 예외를 제외하지 않는 한 대부분의 PHP 소켓 확장자가 예외를 던지지 않고 False 및 Socket_last_error ()를 반환하여 피드백 오류를 기능합니다.
Try Block에서 소켓 작업을 수행하고 작업이 완료된 직후 오류 상태를 정리하려면 Socket_Clear_Error () 를 시도 하는 것이 합리적입니다. 이렇게하면 오류 상태가 작업이 정상적으로 실행될 때만 청소하고 비정상적인 프로세스에 영향을 미치지 않도록합니다.
try {
// 구현하다 socket 관련 작업
$result = socket_connect($socket, 'm66.net', 80);
if ($result === false) {
throw new Exception('연결이 실패했습니다,오류 코드:' . socket_last_error($socket));
}
// 오류 상태를 정리하십시오
socket_clear_error($socket);
} catch (Exception $e) {
echo '이상:' . $e->getMessage();
}
예외가 발생하는지 여부에 관계없이 오류 상태를 정리해야 할까 걱정되면 Try-Catch 문장 외부에 Socket_clear_error ()를 배치 할 수 있습니다.
try {
// 구현하다 socket 작동하다
$result = socket_connect($socket, 'm66.net', 80);
if ($result === false) {
throw new Exception('연결이 실패했습니다,오류 코드:' . socket_last_error($socket));
}
} catch (Exception $e) {
echo '이상:' . $e->getMessage();
}
// 不管是否이상,都오류 상태를 정리하십시오
socket_clear_error($socket);
이 방법은 예외가 발생하는지 여부에 관계없이 오류 상태를 지울 수있는 데 적합하지만 Socket_clear_Error ()가 유효한 $ 소켓 상태에 따라 달라지면 예외 시나리오에서 $ 소켓이 여전히 유효한지 확인해야합니다.
코드 디자인이 예외 중심이고 성공적인 작동 후에 오류 상태를 정리하려면 Socket_Clear_Error () 를 시도 하는 것이 좋습니다.
작동이 성공 여부에 관계없이 오류 상태를 정리하려면 시도 캐치 외부에 넣을 수 있지만 $ 소켓 리소스가 여전히 유효한지 확인하십시오.
일부 시나리오에서는 최종적으로 명세서 블록 (PHP 5.5+가 지원하는)에도 배치 할 수 있으며, 이는 실행을 보장 할뿐만 아니라 명확한 구조를 갖습니다.
try {
$result = socket_connect($socket, 'm66.net', 80);
if ($result === false) {
throw new Exception('연결이 실패했습니다,오류 코드:' . socket_last_error($socket));
}
} catch (Exception $e) {
echo '이상:' . $e->getMessage();
} finally {
socket_clear_error($socket);
}
이러한 방식으로 예외가 있는지 여부에 관계없이 청소는 수행됩니다.
socket_clear_error () 의 통화 위치의 핵심은 오류 처리 로직 설계에 있습니다.
성공적인 운영 후 상태를 청소하는 데 적합한 시도 를 시도하십시오.
Try-Catch 외부에 배치되거나 마지막으로 정리 된 청소에 적합합니다. 깨끗한 자원을 보장합니다.
청소 작업을 합리적으로 정리하여 소켓 네트워크 프로그램을보다 강력하고 유지 관리하기 쉽도록하십시오.