flask中可以使用装饰器errorhandler来对指定的异常、状态码等统一捕获并处理。

对指定的状态码进行统一捕获

@app.errorhandler(404)
# 参数e是异常的详细信息的对象,必须要有一个参数接收异常对象。
def pagenotfound(e):
# 比如可以重定向到统一的404静态页面中。
# 不过如果是前后端分离开发,一般都是直接返回reseful的json数据,然后前端根据code来自行重定向到404页面。
data = {"code": 404, "data": None}
response = jsonify(data)
response.status_code = data["code"]
return response

对某种异常类统一捕获

@app.errorhandler(ZeroDivisionError)
def zeroerror(e):
return "除数不能为0!"
# 不用装饰器的方法直接调用方式:这种方式学装饰器的时候也学过了,相当于将@装饰拆解开来而已。
app.errorhandler(ZeroDivisionError)(zeroerror)

如果是这样,还不如用官方推荐的

app.register_error_handler(code_or_exception, handler_func)

flask统一异常捕获(作用:统一捕获指定的异常并返回)的更多相关文章

  1. C++异常处理解析: 异常的引发(throw), 捕获(try catch)、异常安全

    前言: C++的异常处理机制是用于将运行时错误检测和错误处理功能分离的一 种机制(符合高内聚低耦合的软件工程设计要求),  这里主要总结一下C++异常处理的基础知识, 包括基本的如何引发异常(使用th ...

  2. java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误

    /** * Return whether the given throwable is a checked exception: * that is, neither a RuntimeExcepti ...

  3. C++异常的几种捕获方式

    捕获指定的类型 这样的话可以对每种异常做出不同的处理,例如: #include <iostream> using namespace std; void A(int n){ int a = ...

  4. 基于.Net Framework 4.0 Web API开发(3):ASP.NET Web APIs 异常的统一处理Attribute 和统一写Log 的Attribute的实现

    概述:  ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是项目,总有异常发生,本节就来谈谈API的异常 ...

  5. Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息

    Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息 1.1. 异常的处理模式exit  continue undo模式 1 1.2. 捕获所有异常使用        DECLARE ...

  6. Java中有多个异常, 如何确定捕获顺序(多个catch),先从上到下执行,判断异常的大小,如果包含捕到异常,就进入这个catch,后面的就不再执行

    Java中异常的捕获顺序(多个catch)( Java代码 import java.io.IOException; public class ExceptionTryCatchTest { publi ...

  7. C++异常抛出与捕获及处理

    一.异常 迄今为止,我们处理程序中的错误一般都是用if语句测试某个表达式,然后处理错误的特定义代码. C++异常机制使用了三个新的关键字  (SEH(结构化异常处理)) try    ──标识可能出现 ...

  8. Java中主线程如何捕获子线程抛出的异常

    首先明确线程代码的边界.其实很简单,Runnable接口的run方法所界定的边界就可以看作是线程代码的边界.Runnable接口中run方法原型如下: public void run(); 而所有的具 ...

  9. Java 项目创建 -- 统一结果处理、统一异常处理、统一日志处理

    一.IDEA 插件使用 1.说明 此处使用 SpringBoot 2.2.6 .JDK 1.8 .mysql 8.0.18 作为演示. 使用 IDEA 作为开发工具. 2.IDEA 插件 -- Lom ...

  10. SpringMVC学习笔记 - 第二章 - SSM整合案例 - 技术整合、统一结果封装、统一异常处理、前后联调、拦截器

    [前置内容]Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与生命周期.DI(依赖注入) Spring学习笔记 - 第二章 ...

随机推荐

  1. 在 RedHat Enterprise、CentOS 或 Fedora Linux 上安装 MongoDB

    在 RedHat Enterprise.CentOS 或 Fedora Linux 上安装 MongoDB 1.大纲 备注:采用yum安装后,所有进程将自动在/usr/bin下,如下的mongo.mo ...

  2. HTML一键打包EXE工具1.9.9发布 (包含最新版下载地址)

    HTML一键打包EXE工具(HTML封装EXE,桌件)是一款能将任意HTML项目(网址)打包为单个EXE文件的工具,无需依赖浏览器和服务器,直接双击即可运行.该工具支持多种HTML项目类型,包括KRP ...

  3. 3 分钟把高质量 AI 知识库 FastGPT 装进企业微信

    FastGPT V4 已经上线,直接冲上 GitHub Trending. 如果你还不知道 FastGPT 是什么,可以先去看看作者的介绍 使用 FastGPT 构建高质量 AI 知识库 非常多的企业 ...

  4. Solution Set -「ABC 197」

    「ABC 197A」Rotate Link. 略. #include<bits/stdc++.h> using namespace std; int main(){ char a,b,c; ...

  5. Python面试——基础面试题

    文章目录 1.Python 和 Java.PHP.C.C#.C++等其他语言的对比? C语言既有高级语言的特点,又具有汇编语言的特点,它是结构式语言.C语言应用指针:可以直接进行靠近硬件的操作,但是C ...

  6. Redis系列之——Redis-Cluster

    文章目录 一 Redis Cluser介绍背景 1.1问题 1.2 解决 二 数据分布(分布式数据库) 2.1 存在问题 2.2 分区方式 2.2.1 顺序分区 2.2.2 哈希分区 2.2.2 .1 ...

  7. Semantic Kernel .NET SDK 的 v1.0.0 Beta1 发布

    介绍 Semantic Kernel (SK) 是一个开源的将大型语言模型(LLM)与流行的编程语言相结合的SDK,Microsoft将Semantic Kernel(简称SK)称为轻量级SDK,结合 ...

  8. Vue源码学习(十二):列队处理(防抖优化,多次调用,只处理一次)

    好家伙, 本篇讲的是数据更新请求列队处理 1.一些性能问题 数据更新的核心方法是watcher.updata方法 实际上也就是vm._updata()方法, vm._updata()方法中的patch ...

  9. Java技术_基础技术(0003)_类执行顺序详解+实例(阿里面试题)+详细讲解+流程图

    类加载机制 加载.验证.准备.初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的 ...

  10. JVM-JVM如何加载类

    一.Java 语言的类型可以分为两大类: 基本类型(primitive types) 引用类型(reference types):类.接口.数组类和泛型参数(泛型参数会在编译中被擦除),因此Java虚 ...