【发布时间】:2017-09-15 23:29:07
【问题描述】:
我有一个关于 try catch bock 异常的问题。我想知道我是否有一个名为 Image 的类来制作图像,并且在该类中是一个 try catch 语句,如果有错误,我希望我的控制器使图像返回响应,所以在我的控制器中我也有一个catch 语句我想知道的是我在下面正确并且在我有错误时可以工作,如果它不起作用,你能告诉我我的语句应该是什么。
<?php
namespace App\Acme\Imaging;
use Image as Intervention;
class Image
{
public function __construct($input) {
}
public function save() {
try {
$image = Intervention::make(...);
$image->save(...);
} catch(NotReadableException $e) {
return response()->json(['error' => true, 'message' => $e->getMessage()], $e->getCode(), ['Content-Length' =>$e->getMessage()])
}
}
}
public function store(PostRequest $request)
{
try {
$image = new Image;
$image->width = 500;
$image->height = 500;
$image->save();
$post = new Post;
$post->fill($request->all());
$post->created_by = Auth::user()->id;
$post->image = $image;
if($post->save()) {
return response()->json($post, 200, ['Content-Lnegth' => strlen(json_encode($post))]);
}
} catch(Exception $e) {
return response()->json(array('error' => true, 'type' => 'exception', 'message' => $e->getMessage()), $e->getCode(), ['Content-Length' => strlen($e->getMessage())]);
}
}
【问题讨论】:
-
NotReadableException引用到扩展类Exception,您必须为此创建该类:try{} catch() {}块没有任何问题。我不确定response()来自哪里。你确定不是$e->response()吗?由于$e是实例化异常 -
如果我这样做 $e->response([], $e->getCode(), ['Content-Length' => $e->getMessage()]) 会返回在 json 中,因为这就是我想要的
-
Acutally 你能告诉我你通过创建一个 NotReadableException 类是什么意思吗?你能给我一个答案吗?请告诉我如何将它们链接在一起@KDOT