在python中使用except捕獲任何型別的異常

2022-10-09 02:00:14 字數 2646 閱讀 6128

1

try:

2正常的操作

3......................

4except:5

發生異常,執行這塊**

6......................

7else

:8 如果沒有異常執行這塊**

使用except二不帶任何的異常型別,可以捕獲程式**中的所有異常資訊,這種方式捕獲的異常不區分型別,雖然官方不推薦使用,但是我覺得在傳送http請求中使用的比較廣泛,可以有效的減少程式因遇到異常而退出。

from loguru import

logger

def_handle_request_error(self, method, request_path, params):

if method ==c.get:

request_path = request_path +utils.parse_params_to_str(params)

#url

url = c.api_url +request_path

timestamp =utils.get_timestamp()

#sign & header

ifself.use_server_time:

timestamp =self._get_timestamp()

body = json.dumps(params) if method == c.post else

""sign =utils.sign(utils.pre_hash(timestamp, method, request_path, str(body)), self.api_secret_key)

header =utils.get_header(self.api_key, sign, timestamp, self.passphrase, self.flag)

#send request

response =none

if method ==c.get:

response = requests.get(url, headers=header)

elif method ==c.post:

response = requests.post(url, data=body, headers=header)

return

response

def_request(self, method, request_path, params):

sleep_times = 1tmp_method =method

tmp_request_path =request_path

tmp_params =params

try:

if method ==c.get:

request_path = request_path +utils.parse_params_to_str(params)

#url

url = c.api_url +request_path

timestamp =utils.get_timestamp()

#sign & header

ifself.use_server_time:

timestamp =self._get_timestamp()

body = json.dumps(params) if method == c.post else

""sign =utils.sign(utils.pre_hash(timestamp, method, request_path, str(body)), self.api_secret_key)

header =utils.get_header(self.api_key, sign, timestamp, self.passphrase, self.flag)

#send request

response =none

if method ==c.get:

response = requests.get(url, headers=header)

elif method ==c.post:

response = requests.post(url, data=body, headers=header)

except

while

not str(response.status_code).startswith('2'

): time.sleep(2)

response =self._handle_request_error(tmp_method, tmp_request_path, tmp_params)

datetime.datetime.now()

請求的url=

" +str(url))

請求的body=

" +str(body))

進入請求迴圈不斷的進行相關的請求")

sleep_times = sleep_times + random.randint(0, 9)

print

(str(response))

return

response.json()

else

:

print("

請求傳送正常

")

在python中使用websocket

介紹一款很帥的外掛程式autobahnpython,通過它可以在python中很方便的使用websocket進行通訊 基於twisted框架 這個外掛程式真正強大的地方是它提供了乙個 發布 訂閱模式,具體內容有空再寫,先簡單介紹一下如何建立傳統的連線。建立伺服器 必須的模組 from twisted...

在Python中使用 slots

這篇文章主要介紹了在python中使用 slots 方法的詳細教程,slots 方法是python的乙個重要內建類方法,基於python2.x版本,需要的朋友可以參考下 正常情況下,當我們定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。...

with語句在Python中使用

引言 with語句生於python2.5,通過 from future import with statement 匯入後使用 2.6以後無需匯入直接使用 with 語句適用於對資源進行訪問的場合,確保不管使用過程中是否發生異常都會執行必要的 清理 操作,釋放資源 用途 最常用的兩個地方,檔案使用後...