exception

posted on 13 Nov 2004 20:32 by ipats
ว่าจะเขียนเรื่อง upgrade แต่เอาไว้ก่อน

วันนี้มีว่ากันเรื่องของ exception กันก่อนดีกว่า

จำได้ลางๆ ว่าจะเขียนมานานแล้ว
ไม่แน่ใจด้วยว่าเขียนไปหรือยัง (เอ๊า)

เค้าว่ากันว่า ในการเขียนโปรแกรมทั่วๆ ไปนั่น
โค้ดที่จะทำงานปกติของมันหน่ะ มีไม่ถึงครึ่ง
ส่วนโค้ดที่เหลือหน่ะ เอาไว้ดักจับข้อผิดพลาด

จริงหรือ????

มันก็ไม่แน่นะ
ลองดูนี่นะครับ

int div(int a, int b) {
return a/b;
}

มันคือฟังก์ชันที่ใช้หารเลขธรรมดาๆ นี่แหละครับ
แต่ถ้าเราลองดักจับอะไรนิดๆ หน่อยๆ

int div(int a, int b) {
if (b == 0) {
fprintf(stderr,"error");
return 0;
} else {
return a/b;
}
}

อ่าา นี่ขนาดแค่ตรวจว่ามันไม่ได้หารด้วย 0 นะครับเนี่ย

แล้วลองคิดดูนะครับว่าโปรแกรมใหญ่ๆ ที่เราใช้กัน
มันต้องตรวจสอบอะไรบ้าง

โดยเฉพาะเมื่อมันต้องติดต่อกับผู้ใช้ (ซึ่งบางทีก็.. นะ)

ดูง่ายๆ นะครับ
ในระบบฐานข้อมูลเนี่ย
ใส่เบอร์โทรศัพท์.. เพื่อให้มันเหมือนกัน ผู้ออกแบบ
ต้องกำหนด pattern ให้.. เพิ่มขั้นตอนเข้าไปอีก

อ้อ เมื่อกี้เข้าไปอ่านที่ veer

ความคิดเห็นที่ 2: เรื่องการจัด space มันบังคับไม่ได้น่ะสิ เขาอยากพิมพ์แบบนั้นเราก็ทำอะไรไม่ได้ ดังนั้นในแง่ของคนเขียนโปรแกรม ก็ต้องหาวิธีแก้ให้ได้ :-P รอดูอยู่ว่า จะมีใครแก้ปัญหานี้ได้บ้าง ^^"
paepae @61.91.102.100 , 13/11/2547 7:13:03

เหอๆๆ.. เห็มมั๊ยย

ทำตัวเป็น user ดีๆ เพื่อลดงานของ programmer หน่อยนะครับ
ขอบคุณครับ

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

เรื่องเขียนโปรแกรมเิพิ่มเราว่าไม่เท่าไหร่
แต่มันทำให้ระบบโดยรวมรันช้าไปเลย
เพื่อมากันคนแฮค กันคนใช้ผิด ฯลฯ

#1 By champ on 2004-11-13 20:57

จริงๆ โปรแกรมข้างบนแก้ไม่ดี
เพราะว่าฟังก์ชั่นไม่ควรแจ้ง error เลยแต่ควรเก็บ errorcode ไว้ให้โปรแกรมหลักแจ้งมากกว่า

ดั่งนายทหารผู้น้อยมิควรได้สิทธิ์ในการประกาศสงคราม

(จาก อ.เฉลิมศักดื์) อิอิ

#2 By champ on 2004-11-13 20:59

ปกติผมทำ func มาดักแยกไว้เลยนะ
แล้วค่อย return1 ถ้าเจอ error

#3 By ABZee (61.90.59.89) on 2004-11-14 10:37

"ทำตัวเป็น user ดีๆ เพื่อลดงานของ programmer หน่อยนะครับ" <-- เห็นด้วย อย่างยิ่ง !!!

#4 By inat (161.246.1.33) on 2004-11-14 18:06

จริงๆ พวกโปรแกรมเมอร์เนี่ยน่ากลัวกว่ายูสเซอร์นะ ลองดูเวลาเทสหาบั๊กโปรแกรมกันสิ :-D

#5 By PaePae on 2004-11-14 22:30