pythonerrorcode
⑴ 大學中Python怎麼捕獲警告
Python怎麼捕獲警告?
注意:不是捕獲異常
Python怎麼捕獲警告
1.警告不是異常
當我們在使用第三方庫的時候,經常會出現一些警告數量往往還會很多。一些新手就會以為是不是我們的code寫錯了,code斷了之類的。但其實並不是這樣的。異常和錯誤表明我們寫的程序出現一些問題,但是對於警告而言,大多數的警告都是可以直接忽略的,它們的緊急程度非常之低。如果不想顯示這些告警信息,可以直接加上參數 -Wgnore 參數,就不會再顯示了。能捕獲的只有錯誤異常,但是我們可以通過一系列的操作將這些警告轉化為異常。這樣的話,我們就可以像異常一樣去捕獲他們了。如果我們不進行任何設置,警告就會直接列印在終端上。
2.捕獲警告方法一
在 warnings 中有一系列的過濾器。當你指定為 error 的時候,就會將匹配警告轉換為異常。這樣一來我們就可以通過異常的方式去捕獲警告了。
3.捕獲警告方法二
如果你不想對在代碼中去配置將警告轉成異常可以在執行的時候,只要加上一個參數 -W error ,就可以實現一樣的效果
4.捕獲警告方法三
怎麼捕獲警告除了上面的方法之外 ,warnings 還自帶了個捕獲警告的上下文管理器。當你加上 record=True 它會返回一個列表,列表裡存放的是所有捕獲到的警告,我將它賦值為 w,然後就可以將它列印出來了。
⑵ php-pdo 用 ODBC 連接 MSSQLSERVER Y也是怪麻煩的:TCP Provider: Error code 0x2746
在探索如何使用 PHP-PDO 連接 MSSQLSERVER 時,我經歷了一系列困擾。最初嘗試時,我遇到一個具體的錯誤提示,SQLSTATE[08001] SQLDriverConnect: 10054,其背後是使用 Microsoft ODBC Driver 17 的 TCP Provider 錯誤代碼 0x2746。我逐一檢查並調整,包括在配置文件中使用正確的ODBC驅動絕對路徑,確保等號前後無空格等,均未解決問題。甚至更換到Odbc 驅動的較新版本,並嘗試使用 PYTHON 的 PYMSSQL 作為對照,排除了與防火牆配置相關的問題,但問題依然存在。我查看了一些論壇和文檔,了解到 SSL 相關配置可能與問題相關聯,然而在對 /etc/ssl/openssl.cnf 文件進行調整後,問題依舊。
在嘗試了微軟提供的示例代碼仍然無效後,我開始檢查是否埠號配置錯誤以及操作系統版本是否兼容,但問題在於即使在 Linux 環境下,我仍舊無法連接到 MSSQLSERVER。更復雜的是,我發現 SSL 配置是部分可能的罪魁禍首,但從調整 SSL 相關配置到降低 TLS 版本後,連接問題仍然存在。這讓我開始懷疑,問題可能與當前版本的 PHP-PDO 不兼容或配置中的某個細節尚未被發現。
我嘗試進一步調整,但發現即使採用最新版本的 ODBC 驅動,連接問題仍然未解決。查看錯誤信息時,發現提示與使用 MariaDB 或其他資料庫連接情況大相徑庭,表明問題可能與資料庫服務端相關。嘗試連接 10.5.16-MariaDB 資料庫時,我發現可以成功建立連接。這讓我開始考慮是否應嘗試其他 ODBC 介面模式,如 ODBC unified,但經過驗證,這個方法在當前環境中並不適用。
問題的解決過程中,我意識到最終答案可能並非技術層面的缺陷,而可能是版本不兼容或配置細節上的疏漏。在無法解決問題後,我決定求助於專業的資料庫管理工具,以輔助進行故障排查和調試。我嘗試了微軟自己的 GUI 工具,發現連接問題同樣無法解決,這讓我意識到了連接問題可能與平台或服務配置緊密相關,而非單純的編程問題。
整個探究過程展示了在資料庫連接中,可能面臨的各種復雜性,從 ODBC 驅動配置到 SSL 問題,再到平台和版本兼容性。在這個過程中,我發現雖然 PHP-PDO 是一個強大的連接庫,但對於特定的資料庫系統如 MSSQLSERVER,仍然存在一定的挑戰。解決這些問題需要細致的錯誤分析、廣泛的資源利用和持續的實驗過程。在這個探究旅程中,我深刻體驗到了開發者在維護跨平台系統時所面臨的復雜性和挑戰。