Raise and Handle Exception Demo

import sys

class MyError(Exception):
	def __init__(self,value):
		self.value = value
	def __str__(self):
		return repr(self.value)

try:
	f = open('new.in')
	s = f.readline()
	f.close()
	i = int(s.strip()) 
	raise MyError(3*3) 
except IOError as e:
	print "I/O error({0}):{1}".format(e.errno , e.strerror)
except ValueError:
	print "Could not convert string to int"
except MyError as e:
	print "My errro occurred,value:",e.value
except:
	print "Unexpected error:",sys.exc_info[0]
	raise
参考 : http://docs.python.org/2/tutorial/errors.html


(myenv) PS D:\dachuang> python chatgpt_api_demo.py 输入'exit'退出,'clear'清空历史 你:hello AI思考中... Traceback (most recent call last): File "D:\anaconda\envs\myenv\lib\site-packages\httpx\_transports\default.py", line 101, in map_httpcore_exceptions yield File "D:\anaconda\envs\myenv\lib\site-packages\httpx\_transports\default.py", line 250, in handle_request resp = self._pool.handle_request(req) File "D:\anaconda\envs\myenv\lib\site-packages\httpcore\_sync\connection_pool.py", line 256, in handle_request raise exc from None File "D:\anaconda\envs\myenv\lib\site-packages\httpcore\_sync\connection_pool.py", line 236, in handle_request response = connection.handle_request( File "D:\anaconda\envs\myenv\lib\site-packages\httpcore\_sync\http_proxy.py", line 288, in handle_request connect_response = self._connection.handle_request( File "D:\anaconda\envs\myenv\lib\site-packages\httpcore\_sync\connection.py", line 101, in handle_request raise exc File "D:\anaconda\envs\myenv\lib\site-packages\httpcore\_sync\connection.py", line 78, in handle_request stream = self._connect(request) File "D:\anaconda\envs\myenv\lib\site-packages\httpcore\_sync\connection.py", line 156, in _connect stream = stream.start_tls(**kwargs) File "D:\anaconda\envs\myenv\lib\site-packages\httpcore\_backends\sync.py", line 170, in start_tls raise exc File "D:\anaconda\envs\myenv\lib\contextlib.py", line 131, in __exit__ self.gen.throw(type, value, traceback) File "D:\anaconda\envs\myenv\lib\site-packages\httpcore\_exceptions.py", line 14, in map_exceptions raise to_exc(exc) from exc httpcore.ConnectError: TLS/SSL connection has been closed (EOF) (_ssl.c:1149) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "D:\anaconda\envs\myenv\lib\site-packages\openai\_base_client.py", line 982, in request response = self._client.send( File "D:\anaconda\envs\myenv\lib\site-packages\httpx\_client.py", line 914, in send response = self._send_handling_auth( File "D:\anaconda\envs\myenv\lib\site-packages\httpx\_client.py", line 942, in _send_handling_auth response = self._send_handling_redirects( File "D:\anaconda\envs\myenv\lib\site-packages\httpx\_client.py", line 979, in _send_handling_redirects response = self._send_single_request(request) File "D:\anaconda\envs\myenv\lib\site-packages\httpx\_client.py", line 1014, in _send_single_request response = transport.handle_request(request) File "D:\anaconda\envs\myenv\lib\site-packages\httpx\_transports\default.py", line 250, in handle_request resp = self._pool.handle_request(req) File "D:\anaconda\envs\myenv\lib\contextlib.py", line 131, in __exit__ self.gen.throw(type, value, traceback) File "D:\anaconda\envs\myenv\lib\site-packages\httpx\_transports\default.py", line 118, in map_httpcore_exceptions raise mapped_exc(message) from exc httpx.ConnectError: TLS/SSL connection has been closed (EOF) (_ssl.c:1149) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "chatgpt_api_demo.py", line 44, in call_chatgpt response = client.chat.completions.create( File "D:\anaconda\envs\myenv\lib\site-packages\openai\_utils\_utils.py", line 286, in wrapper return func(*args, **kwargs) File "D:\anaconda\envs\myenv\lib\site-packages\openai\resources\chat\completions\completions.py", line 1147, in create return self._post( File "D:\anaconda\envs\myenv\lib\site-packages\openai\_base_client.py", line 1259, in post return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)) File "D:\anaconda\envs\myenv\lib\site-packages\openai\_base_client.py", line 1014, in request raise APIConnectionError(request=request) from err openai.APIConnectionError: Connection error. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "chatgpt_api_demo.py", line 72, in <module> call_chatgpt() File "chatgpt_api_demo.py", line 64, in call_chatgpt except (APIConnectionError, Timeout): # 此处直接使用Timeout(已正确导入) TypeError: catching classes that do not inherit from BaseException is not allowed (myenv) PS D:\dachuang> python chatgpt_api_demo.py
10-19
### SmartEngine Demo 案例与使用示例 SmartEngine 是一款功能强大的业务编排引擎,适用于多种应用场景下的复杂逻辑处理。以下是一些常见的 **Demo 案例** **使用示例代码**,帮助开发者快速上手并掌握其核心功能。 --- #### 1. 基础任务调度示例 下面是一个简单的 Python 脚本,演示如何利用 SmartEngine 创建运行一个基础的任务调度器: ```python from smartengine.engine import Engine from smartengine.task import Task # 定义一个简单任务函数 def greet_user(user_name): print(f"Hello, {user_name}!") # 初始化引擎实例 engine = Engine() # 创建任务对象 task = Task( name="greet_task", function=greet_user, args=("Alice",), # 参数传递给任务函数 ) # 将任务添加到引擎中 engine.add(task) # 执行任务 engine.run() ``` 上述代码展示了如何定义一个任务函数,并将其注册到 SmartEngine 中执行[^1]。 --- #### 2. 复杂工作流示例 对于涉及多个阶段的工作流场景,SmartEngine 支持链式任务设计。以下是一个多步任务的实现案例: ```python from smartengine.engine import Engine from smartengine.task import Task # Step 1: 数据准备任务 def prepare_data(): data = {"key": "value"} print("Data prepared:", data) return data # Step 2: 数据处理任务 def process_data(data): processed_data = f"Processed-{data['key']}" print("Data processed:", processed_data) return processed_data # Step 3: 结果存储任务 def store_result(result): print("Result stored:", result) # 初始化引擎 engine = Engine() # 添加任务序列 tasks = [ Task(name="prepare", function=prepare_data), Task(name="process", function=process_data, depends_on=["prepare"]), Task(name="store", function=store_result, depends_on=["process"]) ] for task in tasks: engine.add(task) # 启动任务流水线 engine.run() ``` 在此示例中,三个任务按顺序依次执行,后续任务依赖于前一任务的结果[^2]。 --- #### 3. 并发任务处理 当需要同时运行多个独立任务时,SmartEngine 可以轻松支持并发执行模式。以下是一个并发任务的例子: ```python from smartengine.engine import Engine from smartengine.task import Task # 定义两个独立的任务 def download_file(url): print(f"Downloading file from {url}") def upload_to_cloud(file_path): print(f"Uploading file to cloud storage: {file_path}") # 初始化引擎 engine = Engine(parallel=True) # 开启并发模式 # 注册任务 engine.add(Task(name="download", function=download_file, args=("http://example.com/file.zip",))) engine.add(Task(name="upload", function=upload_to_cloud, args=("/path/to/local/file.zip",))) # 运行任务 engine.run() ``` 通过设置 `parallel=True`,可以让不同任务在同一时间范围内异步运行[^3]。 --- #### 4. 错误处理机制 在实际生产环境中,错误捕获重试策略至关重要。SmartEngine 提供了内置的支持来应对这些情况: ```python from smartengine.engine import Engine from smartengine.task import Task # 自定义异常处理函数 def handle_error(error_message): print(f"Error occurred: {error_message}") # 定义可能失败的任务 def risky_operation(): raise ValueError("Something went wrong!") return "Success" # 初始化引擎 engine = Engine(on_failure=handle_error) # 添加带有潜在风险的任务 engine.add(Task(name="risky_task", function=risky_operation)) # 执行任务 try: engine.run() except Exception as e: print(f"Catched exception during execution: {e}") ``` 这段代码实现了对任务执行过程中可能出现的异常进行捕捉响应的能力[^4]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值