එක් පේළියක බහුවිධ ව්යතිරේකයන් මා අල්ලා ගන්නේ කෙසේද (බ්ලොක් හැර)
මෙය කරන්න:
try:
may_raise_specific_errors():
except (SpecificErrorOne, SpecificErrorTwo) as error:
handle(error) # might log or have some other default behavior...
වරහන් වර්ග අවශ්ය වන්නේ පැරණි වාක්ය ඛණ්ඩයක් නිසා කොමාව භාවිතා කර වැරදි වස්තුව නමකට පැවරීම සඳහා ය. මෙම as
මූල පදය පැවරුම සඳහා භාවිතා කරනු ඇත. දෝෂ වස්තුව සඳහා ඔබට ඕනෑම නමක් භාවිතා කළ හැකිය, මම error
පෞද්ගලිකව කැමැත්තෙමි .
හොඳම පුහුණුව
මෙය දැනට සහ ඉදිරියට පයිතන් සමඟ අනුකූල වන පරිදි සිදු කිරීම සඳහා, ඔබ ව්යතිරේකයන් කොමාව සමඟ වෙන් කොට වරහන් සමඟ ඔතා, පෙර වාක්ය ඛණ්ඩයෙන් වෙන්කර හඳුනා ගැනීම සඳහා ව්යතිරේක අවස්ථාව විචල්ය නාමයකට පවරා ඇති ව්යතිරේක වර්ගය අනුගමනය කිරීමෙන් a කොමාව.
සරල භාවිතයට උදාහරණයක් මෙන්න:
import sys
try:
mainstuff()
except (KeyboardInterrupt, EOFError): # the parens are necessary
sys.exit(0)
දෝෂ සැඟවීම වළක්වා ගැනීම සඳහා මම මෙම ව්යතිරේකයන් පමණක් සඳහන් කරමි, මට හමු වුවහොත් සම්පූර්ණ තොග හෝඩුවාව අපේක්ෂා කරමි.
මෙය මෙහි ලේඛනගත කර ඇත: https://docs.python.org/tutorial/errors.html
ඔබට ව්යතිරේකය විචල්යයකට පැවරිය හැකිය, ( e
පොදු ය, නමුත් ඔබට දිගු ව්යතිරේක හැසිරවීමක් තිබේ නම් හෝ ඔබේ IDE ඉස්මතු කරන්නේ ඊට වඩා විශාල තේරීම් පමණි, මගේ මෙන්.) උදාහරණයට ආග්ස් ගුණාංගයක් ඇත. මෙන්න උදාහරණයක්:
import sys
try:
mainstuff()
except (KeyboardInterrupt, EOFError) as err:
print(err)
print(err.args)
sys.exit(0)
පයිතන් 3 හි, අවහිරය අවසන් err
වූ විට වස්තුව විෂය පථයෙන් බැහැර වන බව සලකන්න except
.
අතහැර දමා ඇත
කොමාව සමඟ දෝෂය පවරන කේතය ඔබට පෙනෙනු ඇත. පයිතන් 2.5 සහ ඊට පෙර ඇති එකම පෝරමය වන මෙම භාවිතය ඉවත් කර ඇති අතර, ඔබේ කේතය පයිතන් 3 සමඟ අනුකූල වීමට ඔබ කැමති නම්, නව පෝරමය භාවිතා කිරීම සඳහා ඔබ සින්ටැක්ස් යාවත්කාලීන කළ යුතුය:
import sys
try:
mainstuff()
except (KeyboardInterrupt, EOFError), err: # don't do this in Python 2.6+
print err
print err.args
sys.exit(0)
ඔබේ කෝඩ්බේස් හි කොමා නාම පැවරුම ඔබ දුටුවහොත් සහ ඔබ පයිතන් 2.5 හෝ ඊට වැඩි භාවිතා කරන්නේ නම්, එය සිදු කරන නව ක්රමයට මාරුවන්න එවිට ඔබ උත්ශ්රේණිගත කිරීමේදී ඔබේ කේතය අනුකූල වේ.
මෙම suppress
සන්දර්භය කළමනාකරු
පිළිගත් පිළිතුර ඇත්ත වශයෙන්ම කේත පේළි 4 ක්, අවම:
try:
do_something()
except (IDontLikeYouException, YouAreBeingMeanException) as e:
pass
මෙම try
, except
, pass
රේඛා සමඟ එක පෙලට ඇල්ලීමට හැකි මැඩීමට සන්දර්භය කළමනාකරු, Python 3.4 ලබා ගත :
from contextlib import suppress
with suppress(IDontLikeYouException, YouAreBeingMeanException):
do_something()
එබැවින් ඔබට pass
යම් ව්යතිරේක අවශ්ය වූ විට භාවිතා කරන්න suppress
.