Bạn sẽ phải làm cho điều này riêngtry
khối:
try:
code a
except ExplicitException:
pass
try:
code b
except ExplicitException:
try:
code c
except ExplicitException:
try:
code d
except ExplicitException:
pass
này giả định bạn muốn chạy code c
chỉ nếu code b
thất bại.
Nếu bạn cần phải chạy code c
bất, bạn cần phải đặt các try
khối một sau khi khác:
try:
code a
except ExplicitException:
pass
try:
code b
except ExplicitException:
pass
try:
code c
except ExplicitException:
pass
try:
code d
except ExplicitException:
pass
Tôi đang sử dụng except ExplicitException
ở đây vì nó là bao giờ một thực hành tốt để một cách mù quáng bỏ qua tất cả các ngoại lệ. Bạn cũng sẽ bỏ qua MemoryError
, KeyboardInterrupt
và SystemExit
nếu không, bạn thường không muốn bỏ qua hoặc ngăn chặn mà không có một số loại lý do nâng cao hoặc có ý thức để xử lý chúng.
Nguồn
2013-06-26 14:03:11
Để được rõ ràng, bạn muốn 'đang c' được thực hiện * chỉ khi mã b đặt ra một ngoại lệ *? –
Tất cả các mã sẽ được chạy, trong một khối thử, ngay cả khi chúng tăng ngoại lệ. – arvidurs
Bạn không thể có điều đó. Một khối 'try' không có để ngăn chặn các ngoại lệ trên tất cả các mã được thi hành. Nó sẽ cho phép bạn * bắt * ngoại lệ khi nó xảy ra, nhưng phần còn lại của khối không bao giờ được thực hiện. –