Php 使用try/catch&x27;我看不出有什么例外
我有以下代码:Php 使用try/catch&x27;我看不出有什么例外,php,transmission,Php,Transmission,我有以下代码: <?php require 'vendor/autoload.php'; use Transmission\Exception; try{ $transmission = new Transmission\Client($hostname, $port, $username, $password, $httpClientBuilder = null); } catch (NetworkException $e) { $result = array("Err
<?php
require 'vendor/autoload.php';
use Transmission\Exception;
try{
$transmission = new Transmission\Client($hostname, $port, $username, $password, $httpClientBuilder = null);
} catch (NetworkException $e) {
$result = array("Error" => "Remote access is disabled");
}
您正在使用一个相对名称空间来定义catch语句中的异常Transmission\exception\NetworkException$e
只需使用NetworkException
或在前面添加反斜杠,即可使其成为完全限定的引用
编辑:
来自php文档的参考
编辑:澄清溶液
或者
try
{...}
catch (NetworkException $e)
{ ... }
或
您正在使用相对名称空间在catch语句中定义异常Transmission\exception\NetworkException$e
只需使用NetworkException
或在前面添加反斜杠,即可使其成为完全限定的引用
编辑:
来自php文档的参考
编辑:澄清溶液
或者
try
{...}
catch (NetworkException $e)
{ ... }
或
由于您没有用于NetworkException
的use
-语句,PHP将假定它应该从您当前操作的名称空间加载。(大概是\
)要解决这个问题,只需添加一条语句,如使用传输\Exception\NetworkException代码>。这将告诉PHP您试图捕获的异常类型。由于您没有NetworkException
的use
-语句,PHP将假定它应该从您当前操作的命名空间加载。(大概是\
)要解决这个问题,只需添加一条语句,如使用传输\Exception\NetworkException代码>。这将告诉PHP您试图捕获的异常类型。以下是我如何解决的:
<?php
require 'vendor/autoload.php';
try{
$transmission = new Transmission\Client($hostname, $port, $username, $password, $httpClientBuilder = null);
} catch (Transmission\Exception\NetworkException $e) {
$result = array("Error" => "Remote access is disabled");
}
以下是我如何解决的:
<?php
require 'vendor/autoload.php';
try{
$transmission = new Transmission\Client($hostname, $port, $username, $password, $httpClientBuilder = null);
} catch (Transmission\Exception\NetworkException $e) {
$result = array("Error" => "Remote access is disabled");
}
您的代码也在名称空间中吗?我只有需要“vendor/autoload.php”;使用传输\异常代码>可能您试图在其他位置捕获异常?尝试在异常上替换NetworkException并检查。您的代码也在命名空间中吗?我只有要求“vendor/autoload.php”;使用传输\异常代码>可能您试图在其他位置捕获异常?尝试在异常上替换NetworkException并进行检查。您能准确显示我需要放置的内容吗?我使用了}catch(\NetworkException$e){
但仍然是相同的错误谢谢,我尝试了这两种方法,但不幸的是仍然得到相同的错误error@executable如果您直接在“try”块中抛出异常,请使用抛出新的NetworkException(“test”,400)
它被捕获了吗?我之所以这样问,是因为如果我添加抛出新的NetworkException(“test”,400);
在中尝试阻塞并捕获}catch(\NetworkException$e),可能由于生成实例的方式(new static(…)
)而发生了意想不到的事情{
我有以下错误致命错误:未捕获传输\Exception\NetworkException:test in path/to/my/file.php:19堆栈跟踪:{0{main}在/path/to/my/file.php第19行
@executable删除catch语句中NetworkException之前的``你能准确显示我需要放什么吗?我使用了}catch(\NetworkException$e){
但仍然是相同的错误谢谢,我尝试了这两种方法,但不幸的是仍然得到相同的错误error@executable如果您直接在“try”块中抛出异常,请使用抛出新的NetworkException(“test”,400)
它被捕获了吗?我之所以这样问,是因为如果我添加抛出新的NetworkException(“test”,400);
在中尝试阻塞并捕获}catch(\NetworkException$e),可能由于生成实例的方式(new static(…)
)而发生了意想不到的事情{
我有以下错误致命错误:未捕获传输\Exception\NetworkException:test in path/to/my/file.php:19堆栈跟踪:#0{main}在第19行的/path/to/my/file.php中抛出
@可执行文件在catch语句中删除NetworkException之前的“\\”,我添加了使用传输\Exception\NetworkException;
并使用catch-like}catch(NetworkException$e){
我仍然得到错误:(我添加了use Transmission\Exception\NetworkException;
并使用catch-like}catch(NetworkException$e){
我仍然得到错误:(
<?php
require 'vendor/autoload.php';
try{
$transmission = new Transmission\Client($hostname, $port, $username, $password, $httpClientBuilder = null);
} catch (Transmission\Exception\NetworkException $e) {
$result = array("Error" => "Remote access is disabled");
}