python抛出异常会终止程序吗_catch里面抛出异常

python抛出异常会终止程序吗_catch里面抛出异常Python抛出异常

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Python 抛出异常

抛出异常相当于是停止运行这个函数中的代码,将程序执行转到 except 语句。

如果没有 try 和 except 语句覆盖抛出异常的 raise 语句,该程序就会崩溃,并显示异常的出错信息。通常是调用该函数的代码知道如何处理异常,而不是该函数本身。所以你常常会看到 raise 语句在一个函数中,try 和 except 语句在调用该函数的代码中。

使用 try 和 except 语句,可以更优雅地处理错误,而不是让整个程序崩溃。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

def boxPrint(symbol, width, height):
    if len(symbol) != 1:
        raise Exception("Symbol must be a single character string.")
    if width <= 2:
        raise Exception("Width must be greater than 2.")
    if height <= 2:
        raise Exception("Height must be greater than 2.")

    print(symbol * width)
    for i in range(height - 2):
        print(symbol + (' ' * (width - 2)) + symbol)
    print(symbol * width)


for sym, w, h in (('*', 4, 4), ('O', 20, 5), ('x', 1, 3), ('ZZ', 3, 3)):
    try:
        boxPrint(sym, w, h)
    except Exception as err:
        print('An exception happened: ' + str(err))

/usr/bin/python3.5 /home/strong/workspace/master.py
****
*  *
*  *
****
OOOOOOOOOOOOOOOOOOOO
O                  O
O                  O
O                  O
OOOOOOOOOOOOOOOOOOOO
An exception happened: Width must be greater than 2.
An exception happened: Symbol must be a single character string.

Process finished with exit code 0

References

https://yongqiang.blog.csdn.net/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180616.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 矩阵运算_逆矩阵的运算

    矩阵运算_逆矩阵的运算二、矩阵运算1.什么是矩阵矩阵就是由多组数据按方形排列的阵列,在3D运算中一般为方阵,即M*N,且M=N,使用矩阵可使计算坐标3D坐标变得很方便快捷。下面就是一个矩阵的实例:看似没什么特殊的,可是后面

    2022年8月3日
    5
  • ipset详解[通俗易懂]

    ipset详解[通俗易懂]ipset创建:create创建一个新的ipset集合:ipsetcreateSETNAMETYPENAMESETNAME是创建的ipset的名称,TYPENAME是ipset的类型:TYPENAME:=method:datatype[,datatype[,datatype]]method指定ipset中的entry存放的方式,随后的datatype约定了每个entry…

    2022年10月7日
    3
  • eclipse安装mybatis插件_mybatis分页插件原理

    eclipse安装mybatis插件_mybatis分页插件原理![第一步![](https://img-blog.csdnimg.cn/20191025163208216.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMjUxNzE0,size_16,color_FFFFFF,t_70)…

    2022年10月6日
    4
  • 大数据教程:Transformation和Action算子演示

    大数据教程:Transformation和Action算子演示大数据教程:Transformation和Action算子演示

    2022年4月22日
    36
  • 基于epoll的TP传输层实现

    1.抽象TP传输层设计在使用epoll实现实际的传输层之前,先设计一个抽象的传输层,这个抽象的传输层是传输层实现的接口层。接口层中一共有以下几个通用的类或者接口:(1)Socket:通用的套接

    2021年12月28日
    50
  • ScheduledExecutorService 使用

    ScheduledExecutorService 使用ScheduledExecutorService,我平时没有用过,他的最大优点除了线程池的特性以外,可以实现循环或延迟任务。ScheduledExecutorService,是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互不影响。需要注意,只有当调度任务来的时候,ScheduledExecutorService才会真正启动一个线程,其余时间ScheduledExecutorService都是出于轮询任务的状态。先来个简单的延迟任务调…

    2022年6月2日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号