Tutorial Python untuk bukan pengatur cara/Menangani kecacatan: Perbezaan antara semakan

Kandungan dihapus Kandungan ditambah
Aurora (bincang | sumb.)
Algazel (bincang | sumb.)
kembang terjemahan
Baris 18:
ValueError: invalid literal for int(): @#&
 
AsSeperti youyang cananda seedapat thelihat fungsi <code>int()</code> functiontidak isberapa unhappygemar withdengan the numbernombor <code>@#&</code> (asdan wellmemang itsepatutnya should bedemikian). TheBaris lastterakhir linemenunjukkan showsapa whatmasalahnya; the problemPython is;telah Pythonmenemui found a <code>ValueError</code>. (Ralat nilai). How canBagaimana ourharus program dealkita withmenangani thismasalah ini? WhatApa weyang doharus iskita first:buat putialah, pertamanya: theletakkan placekod whereyang themenimbulkan errorsralat occursitu indalam ablok <code>try</code> block(cuba), anddan secondkeduanya: tellberitahu Python howbagaimana wekita wantmahu ralat <code>ValueError</code>s handleddikendalikan. The following program does this:
 
Program berikut melakukan ini:
 
<source lang="python">
print "TypeTaip Control C oratau -1 tountuk exitkeluar"
numbernombor = 1
while numbernombor != -1:
try:
numbernombor = int(raw_input("EnterMasukkan a numbernombor: "))
print "YouAnda enteredtelah memasukkan: ", numbernombor
except ValueError:
print "ThatItu wasbukan not a numbernombor."
</source>
 
Sekarang bila kita laksanakan program baru dan memberinya input seperti <code>@#&</code>, program itu akan memberitahu kita bahawa "Itu bukan nombor." dan meneruskan apabila yang dilakukannya sebelum itu.
Now when we run the new program and give it <code>@#&</code> it tells us "That was not a number." and continues with what it was doing before.
 
Apabila program anda kerap mengalami ralat yang dapat anda perbetulkan, letakkan kod dalam blok <code>try</code>, dan letakkan cara untuk mengendalikan ralat itu dalam blok <code>except</code> (kecuali).
 
Berikut ini sebuah contoh Pengendalian Ralat yang lebih kompleks.
When your program keeps having some error that you know how to handle, put code in a <code>try</code> block, and put the way to handle the error in the <code>except</code> block.
 
Here is a more complex example of Error Handling.
<source lang="python">
# Program by Mitchell Aikens 2012
Baris 40 ⟶ 44:
import math
 
def mainutama():
successberjaya = 0
while (successberjaya == 0):
try:
epactepak()
successberjaya = 1
except ValueError:
print "ErrorRalat. PleaseSila entermasukkan annilai integer value."
year = 0
except NameError:
print "ErrorRalat. PleaseSila entermasukkan annilai integer value."
year = 0
except SyntaxError:
print "ErrorRalat. PleaseSila entermasukkan annilai integer value."
year = 0
finally:
print "Program CompleteSelesai"
 
def epactepak():
## P: epak ialah cara menghitung umur Bulan
## pada satu Januari
yeartahun = int(input("WhatIni yeartahun is itapa?\n"))
C = year/100
epactvalC = tahun/100
nilai_epak = (8 + (C/4) - C + ((8*C + 13)/25) + 11 * (yeartahun%19))%30
print "TheEpak Epact isialah: ",epactval nilai_epak
 
mainutama()
</source>