Ben*_*Rae 32 php exception-handling try-catch
我理解try-catch语句的作用,但是通过阅读php.net上的文档,我无法在我自己的代码中实现一个.我需要一个真实的例子来帮助我理解.
如果上传不成功,如何将此示例转换为try catch语句?
$move = move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/uploads/".$_FILES['file']['name']);
if (!$move) {
die ('File didn't upload');
} else {
//opens the uploaded file for extraction
echo "Upload Complete!";
}
Run Code Online (Sandbox Code Playgroud)
这可能不是一个很好的例子,但任何帮助将不胜感激.
Tom*_*igh 50
你可以这样做.
try {
//throw exception if can't move the file
if (!move_uploaded_file( ... )) {
throw new Exception('Could not move file');
}
//do some more things with the file which may also throw an exception
//...
//ok if got here
echo "Upload Complete!";
} catch (Exception $e) {
die ('File did not upload: ' . $e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)
对于上面的例子,这有点无意义,但你应该明白这一点.请注意,您可以从任何地方抛出异常(例如,在您使用try {}调用的函数/方法中),它们将向上传播.
好吧,如果你想使用例外,你可以这样做:
function handleUpload() {
$move = move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/uploads/".$_FILES['file']['name']);
if (!$move) {
throw new Exception('File Didnt Upload');
}
}
try {
handleUpload();
echo "File Uploaded Successfully";
} catch(Exception $ex) {
die($ex->getMessage);
}
Run Code Online (Sandbox Code Playgroud)
我知道这看起来很臃肿 - 但你可以从调用堆栈的任何地方调用该方法,并在任何时候捕获异常.
小智 7
try-catch语句用于处理异常.我不相信函数move_uploaded_files可以抛出和异常,因此我认为你编写的代码是正确的.通话结束后,查看返回代码.如果它是假的,则结束处理,否则您报告成功.
| 归档时间: |
|
| 查看次数: |
62255 次 |
| 最近记录: |