当前位置:首页>python>【从零开始学Python】篇9-基础语法章-异常处理

【从零开始学Python】篇9-基础语法章-异常处理

  • 2026-06-30 14:34:08
【从零开始学Python】篇9-基础语法章-异常处理

人非圣贤,孰能无过。程序也一样,关键是要学会“体面地犯错”

写程序的时候,你有没有遇到过这样的情况:

  • 用户输入了文字,程序却要转换成数字 → 💥 崩溃

  • 打开一个不存在的文件 → 💥 崩溃

  • 除以0 → 💥 崩溃

  • 列表索引超出范围 → 💥 崩溃

程序一崩溃,用户体验直接归零。

但其实,这些错误完全可以被优雅地处理——这就是异常处理的作用。


一、什么是异常?

异常 = 程序运行时发生的错误

当Python遇到无法继续执行的情况时,就会抛出一个异常。如果不处理,程序就会终止。

# 这几个都会引发异常int("hello")# ValueError10/0# ZeroDivisionErroropen("不存在.txt")# FileNotFoundError[1,2,3][10]# IndexError

常见异常类型(混个脸熟)

异常含义
NameError变量未定义
TypeError类型错误(如字符串+数字)
ValueError值错误(如int("abc"))
ZeroDivisionError除以0
IndexError索引超出范围
KeyError字典键不存在
FileNotFoundError文件不存在
AttributeError对象没有这个属性
ImportError导入模块失败

二、异常处理的基本语法

1️⃣ try-except —— 捕获异常

try:    num =int(input("请输入数字:"))    print(f"你输入了:{num}")except ValueError:    print("错误:请输入有效的数字!")

执行流程:

  • try里的代码正常 → 跳过except

  • try里的代码出错 → 跳到对应的except执行

2️⃣ try-except-else —— 没有异常时执行

try:    num =int(input("请输入数字:"))except ValueError:    print("输入错误!")else:    # 只有在没有异常时才执行    print(f"输入正确,数字是{num}")

3️⃣ try-except-finally —— 无论是否异常都执行

try:    f =open("data.txt","r")    data = f.read()except FileNotFoundError:    print("文件不存在")finally:# 无论上面有没有异常,都会执行    print("这里的代码一定会执行")# 适合用来关闭资源    if 'f' in locals():                f.close()

finally 通常用于清理工作(关闭文件、释放连接等)

4️⃣ 捕获多个异常

try:    num =int(input("请输入数字:"))    result =100/ numexcept ValueError:    print("请输入数字!")except ZeroDivisionError:    print("不能除以0!")

5️⃣ 合并多个异常

try:    num =int(input("请输入数字:"))    result =100/ numexcept(ValueError, ZeroDivisionError)as e:    print(f"输入错误:{e}")

6️⃣ 捕获所有异常(不推荐)

try:    risky_code()except Exception as e:    print(f"发生错误:{e}")

⚠️ 谨慎使用:捕获所有异常会隐藏你没预料到的bug。


三、手动抛出异常:raise

有时候,你想主动触发异常:

def set_age(age):    if age <0or age >150:        raise ValueError("年龄必须在0-150之间")    print(f"年龄设置为:{age}")try:        set_age(200)except ValueError as e:    print(f"出错了:{e}")

重新抛出异常

try:    do_something()except Exception as e:    # 记录日志        log_error(e)    # 重新抛出,让上层处理    raise

四、自定义异常

你可以定义自己的异常类型:

# 定义一个自定义异常class BalanceInsufficientError(Exception):      """余额不足异常"""      passdef withdraw(balance, amount):      if amount > balance:            raise BalanceInsufficientError(f"余额不足,需要{amount},只有{balance}")          balance -= amount       return balancetry:      new_balance = withdraw(100,200)except BalanceInsufficientError as e:   print(f"取款失败:{e}")

自定义异常让你的代码

意图更清晰,别人一看异常名就知道发生了什么。


五、assert 断言 —— 调试利器

断言:假设某个条件一定成立,如果不成立就抛出 AssertionError

def divide(a, b):    assert b !=0,"除数不能为0"    return a / bdivide(10,0)# AssertionError: 除数不能为0

断言主要用于

开发阶段检测逻辑错误,生产环境可以用 -O 参数关闭。


六、实战案例

案例1:安全的整数输入函数

def safe_int_input(prompt, retry=3):    """安全的整数输入函数,带重试机制"""    for i inrange(retry):        try:              value =int(input(prompt))              return value          except ValueError:          print(f"输入无效,还剩{retry - i -1}次机会")          raise ValueError(f"连续{retry}次输入错误")# 使用age = safe_int_input("请输入年龄:")print(f"年龄:{age}")

案例2:安全读取文件

def safe_read_file(filename, default=""):    """安全读取文件,文件不存在时返回默认值"""    try:        with open(filename,"r", encoding="utf-8")as f:        return f.read()    except FileNotFoundError:        print(f"文件 {filename} 不存在,返回默认值")        return default     except PermissionError:print(f"没有权限读取 {filename}")        return default    except Exception as e:        print(f"读取文件时发生未知错误:{e}")        return default content = safe_read_file("config.txt","{}")

案例3:带重试的网络请求模拟

import time import randomdef fetch_data(url):    """模拟网络请求,随机失败"""    if random.random()<0.7:      # 70%概率失败      raise ConnectionError("网络连接失败")    return f"从 {url} 获取的数据"def fetch_with_retry(url, max_retries=3, delay=1):    """带重试的数据获取函数"""    for attempt inrange(max_retries):        try:            print(f"尝试第 {attempt +1} 次...")                        data = fetch_data(url)            print("成功!")            return data        except ConnectionError as e:            print(f"失败:{e}")        if attempt < max_retries -1:            print(f"等待 {delay} 秒后重试...")                            time.sleep(delay)        else:            print("所有重试均失败")            raise# 测试try:        result = fetch_with_retry("https://api.example.com/data")except ConnectionError:    print("获取数据失败,请稍后再试")

案例4:计算器(完整异常处理)

def calculator():    """带完整异常处理的计算器"""    print("=== 简单计算器 ===")    print("支持运算:+ - * /")    while True:        try:            # 获取输入                        exp =input("\n请输入表达式(如 3 + 5)或输入 q 退出:")            if exp.lower()=='q':                print("再见!")                break            # 解析表达式                        parts = exp.split()            if len(parts)!=3:                print("格式错误,请使用:数字 运算符 数字")                continue                        a, op, b = parts                        a =float(a)                        b =float(b)            # 执行运算            if op =='+':                result = a + b            elif op =='-':                                result = a - b            elif op =='*':                                result = a * b            elif op =='/':                if b ==0:                    raise ZeroDivisionError("不能除以0")                                result = a / b            else:                print(f"不支持的运算符:{op}")                continue            print(f"结果:{result}")        except ValueError:            print("错误:请输入有效的数字")        except ZeroDivisionError as e:            print(f"错误:{e}")        except KeyboardInterrupt:            print("\n用户中断")break        except Exception as e:            print(f"未知错误:{e}")calculator()

案例5:银行取款系统

class InsufficientBalanceError(Exception):"""自定义:余额不足异常"""pass class AccountNotFoundError(Exception):"""自定义:账户不存在异常"""pass class BankAccount:    def __init__(self, account_id, balance=0):        self.account_id = account_id                self.balance = balance    def withdraw(self, amount):        if amount <=0:           raise ValueError("取款金额必须大于0")        if amount > self.balance:           raise InsufficientBalanceError(f"余额不足!当前余额:{self.balance},需要:{amount}")                self.balance -= amount return self.balance     def deposit(self, amount):         if amount <=0:           raise ValueError("存款金额必须大于0")                 self.balance += amount return self.balance# 使用示例accounts ={"1001": BankAccount("1001",1000),"1002": BankAccount("1002",500),}def bank_system():     print("=== 银行系统 ===")     try:                 acc_id =input("请输入账号:")         if acc_id not in accounts:           raise AccountNotFoundError(f"账号 {acc_id} 不存在")                 account = accounts[acc_id]                 action =input("请选择操作(1=存款,2=取款):")                 amount =float(input("请输入金额:"))         if action =='1':                       new_balance = account.deposit(amount)           print(f"存款成功!当前余额:{new_balance}")         elif action =='2':                       new_balance = account.withdraw(amount)           print(f"取款成功!当前余额:{new_balance}")         else:print("无效操作")       except AccountNotFoundError as e:           print(f"账户错误:{e}")       except InsufficientBalanceError as e:           print(f"取款失败:{e}")       except ValueError as e:           print(f"金额错误:{e}")       except Exception as e:           print(f"系统错误:{e}")bank_system()

七、最佳实践与避坑指南

✅ 好的做法

# 1. 捕获具体异常,而不是全部try:    result =int(text)except ValueError:    # 具体    pass# 2. 异常信息要清晰raise ValueError(f"年龄不能为负数:{age}")# 3. 用 finally 释放资源f =open("file.txt")try:    process(f)finally:        f.close()# 4. 用 with 自动管理(更推荐)with open("file.txt")as f:    process(f)# 5. 记录异常日志import loggingtry:    risky_code()except Exception as e:    logging.exception("发生异常")

❌ 坏的做法

# 1. 捕获所有异常(隐藏bug)try:    data = process()except:    # 连键盘中断都被吞了    pass# 2. 异常太宽泛except Exception as e:# 大多数情况没问题,但应该更具体    pass# 3. 什么都不做的 excepttry:    x =int(text)except:    pass# 静默失败,问题很难排查# 4. 抛出太通用的异常raise Exception("出错了")# 用更具体的异常类型

🔥 常见坑点

# 坑1: except 顺序try:    value =int("abc")except Exception:# 这个会捕获所有,下面的 ValueError 永远不会执行    print("通用错误")except ValueError:# 永远到不了这里    print("值错误")# ✅ 正确:先具体后通用try:    value =int("abc")except ValueError:    print("值错误")except Exception:    print("其他错误")# 坑2:不知道异常类型# 可以这样打印出来try:        risky_code()except Exception as e:    print(type(e).__name__, e)# 看看是什么异常

八、异常处理速查表

场景写法
捕获特定异常except ValueError:
捕获多个异常except (ValueError, TypeError):
获取异常对象except ValueError as e:
没有异常时执行else:
无论是否异常都执行finally:
手动抛出异常raise ValueError("信息")
自定义异常class MyError(Exception): pass
断言assert condition, "错误信息"

写在最后

异常处理不是“逃避错误”,而是让程序在面对意外情况时,能够体面地处理

记住这几个原则:

1️⃣ 预见可能出错的地方,提前用 try 保护
2️⃣ 捕获具体的异常,不要一股脑全抓
3️⃣ 异常信息要清晰,方便排查问题
4️⃣ finally 或 with 确保资源释放
5️⃣ 不要静默吞掉异常,至少打个日志


📌 如果觉得有用,点赞+在看+转发 给正在学Python的小伙伴!

优雅地犯错,体面地恢复。我们下期见! 👋

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 19:31:49 HTTP/2.0 GET : https://f.mffb.com.cn/a/494073.html
  2. 运行时间 : 0.279665s [ 吞吐率:3.58req/s ] 内存消耗:4,936.18kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0afe15cfdcf9eae1e8be246eeee386e5
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000802s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000843s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.013576s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.003728s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000629s ]
  6. SELECT * FROM `set` [ RunTime:0.011662s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000931s ]
  8. SELECT * FROM `article` WHERE `id` = 494073 LIMIT 1 [ RunTime:0.033022s ]
  9. UPDATE `article` SET `lasttime` = 1783078309 WHERE `id` = 494073 [ RunTime:0.007613s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000357s ]
  11. SELECT * FROM `article` WHERE `id` < 494073 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000570s ]
  12. SELECT * FROM `article` WHERE `id` > 494073 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000455s ]
  13. SELECT * FROM `article` WHERE `id` < 494073 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001822s ]
  14. SELECT * FROM `article` WHERE `id` < 494073 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002713s ]
  15. SELECT * FROM `article` WHERE `id` < 494073 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.025098s ]
0.281392s