首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在这种情况下使用try catch

如何在这种情况下使用try catch
EN

Stack Overflow用户
提问于 2020-04-29 20:56:54
回答 1查看 31关注 0票数 0

我想删除其他关系,即使前面的任何删除都失败了。我已经使用了很多try/catch来实现这一点。有没有一种方法可以减少代码中try-catch的数量,或者不使用try-catch?

代码语言:javascript
复制
    public function delete_live_event(Request $request){
        try{
            $user = User::find($request->auth_user_id);

            if(!$request->journey_item_id){
                return response()->json(['StatusMessage' => 'Bir hata oluştu !', 'StatusCode' => 401,'error'=>'live_event_id gönderilmedi'], 401);
            }
            $journey_item = JourneyItem::find($request->journey_item_id);
            if ($journey_item == null) {
                return response()->json(['StatusMessage' =>  __('contents.not_found'), 'StatusCode' => 404], 404);
            }

            /** Assigned Users deleted **/
            try{
                UserJourney::where('as_journey_id',$journey_item->journey->id)->delete();
            }catch (\Exception $e){ //log 
            }

            /** journey deleted **/
            try{
                $journey_item->journey()->delete();
            }catch (\Exception $e){
               //Log
            }

            /** content deleted **/
            try{
                $journey_item->content()->delete();
            }catch (\Exception $e){//Log
            }

            /** notifications deleted **/
            try{
                UserJourneyItemNotification::where('as_journey_item_id', $journey_item->id)->delete();
            }catch (\Exception $e){//Log
            }

            /** item deleted **/
            try{
                $journey_item->item()->delete();
            }catch (\Exception $e){//Log
            }

            /** journey_item deleted **/
            $journey_item->delete();

            return response()->json(['StatusMessage' => 'Live event is deleted succesfuly', 'StatusCode' => 200], 200);
        }catch (\Exception $e){
            //TODO error log
            return response()->json(['StatusMessage' => 'Bir hata oluştu !', 'StatusCode' => 400], 401);
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2020-04-29 21:35:24

Try / Catch通常用于您想要捕获错误以停止进一步处理的情况。如果列表中的每一项都可以删除,即使其他项不能删除,那么根本就没有理由使用try/catch。

您也不需要将main函数包装在try/catch块中,因为在该代码中发生的唯一失败就是调用了对象中不存在的方法。这将是一个代码故障,需要纠正。这不是您希望允许继续处理的错误类型,因为缺少的方法是代码错误,应该进行更正。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61502329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档