Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > ปรึกษาปัญหาเกี่ยวกับ try exception ครับ ว่ามีหลักการเขียนอย่างไร



 

ปรึกษาปัญหาเกี่ยวกับ try exception ครับ ว่ามีหลักการเขียนอย่างไร

 



Topic : 065810



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์




ปัญหาของผมมีอยู่ว่า
ตัว try exception ของผมมันตรวจเจอ Error ในส่วนของ First Process มันก็ฟ้องในส่วนของ Error 001 แล้วก็รีเฟลชหน้านี้อีกครั้ง ตาม script window.location แต่พอผมมาตรวจเช็คดูดีๆ ปรากฎว่า มันไม่ใช่แค่ ลิงค์กลับ แต่มันยังทำ Process ต่อไปได้อีก ก็เลยอยากจะถามว่า หลักการเขียน try exception ของผมถูกต้องหรือเปล่า รบกวนขอคำแนะนำด้วยครับ

ปล. ผมก๊อปปี้สคริปมาไม่หมดนะครับ เพราะว่าสคริปจริงๆมันยาวมาก เลยตัดเฉพาะบางส่วนที่จะสามารถอธิบายให้พอเข้าใจได้
Code (VB.NET)
 strSQL = "SELECT COUNT(*) FROM article_tbl WHERE article_no = '" & articleNo & "'"
        objCmd = New OleDbCommand(strSQL, objConn)
        num = objCmd.ExecuteScalar()
        If num > 0 Then
            Response.Write("<script>alert('This article already existing,please check again');</script>")
            Response.Write("<script>window.location='add_art.aspx'</script>")
        Else
            Try
' ***first process

                strSQL = "INSERT INTO article_tbl (article_no,article_name,article_model,article_size, vender_id,maker,subcate_id,cate_id ,packing_unit,price,moq,leadtime,purchasing_by,certified_report,incoming_report,product_spec, fac_audit,date_modify,status,esd_control,show,art_comment,area)" & _
                " VALUES('" & articleNo & "','" & articleName & "','" & articleModel & "','" & articleSize & "', " & venderID & ",'" & selectMaker & "'," & subcategory_id & "," & category_id & ",'" & packingUnit & "','" & price2 & "','" & moq2 & "','" & leadTime & "', '" & purchasing2 & "','" & certified2 & "','" & incoming2 & "','" & specSheet & "','" & facAudit & "','" & dateTime & "'," & status & " ,'" & type & "',0,'" & comment.Text & "'," & select_area.Text & ")"
                objCmd = New OleDbCommand(strSQL, objConn)
                objCmd.ExecuteNonQuery()
            Catch ex As Exception
                '**** ตอนนี้ฟ้อง Error ที่ตรงนี้
                Response.Write("<script> alert('ERROR 001:" & ex.Message & "');</script>")
               '*** ฟ้อง Error เสร็จ ก็ให้ลิงค์ไปที่ชื่อไฟล์ add_art.aspx (ไฟล์เดิม เหมือนกับ รีเฟลชธรรมดา)
                Response.Write("<script>window.location='add_art.aspx';</script>")
            End Try

'***next process แต่พอมาดูผลมันจริงๆ ปรากฎว่า สคริปข้างล่างนี้ยังทำงานปกติ
            strSQL = "SELECT MAX(article_id) FROM article_tbl"
            objCmd = New OleDbCommand(strSQL, objConn)
            lastart = objCmd.ExecuteScalar()

            strSQL = "SELECT * FROM article_tbl WHERE article_id = " & lastart & ""
            objCmd = New OleDbCommand(strSQL, objConn)
            dtReader = objCmd.ExecuteReader()
            dtReader.Read()
            'File Upload 
            Dim objGraphic As System.Drawing.Image
            Dim objBitmap As Bitmap
            Dim intWidth As Integer = 100
            Dim intHeight As Integer = 0
            Dim bigWidth As Integer = 550
            Dim bigHeight As Integer = 0
            Dim i As Integer
            For i = 1 To 5
                Dim picture As FileUpload = FindControl("picture_" & i)
                Dim pictureName As String = dtReader.GetValue(1) & i & GetExtension(picture.FileName)
                If picture.HasFile Then
                    Try
                        strSQL = "INSERT INTO image_tbl (img_name,refarticle_id) VALUES ('" & pictureName & "'," & lastart & ")"
                        objCmd = New OleDbCommand(strSQL, objConn)
                        objCmd.ExecuteNonQuery()
                    Catch ex As Exception
                        Response.Write("<script> alert('ERROR 002:" & ex.Message & "');</script>")
                        Response.Write("<script>window.location='add_art.aspx'</script>")
                    End Try
                    picture.PostedFile.SaveAs(Server.MapPath("../tempPic/" & pictureName))
                    'Start Resize Big
                    objGraphic = System.Drawing.Image.FromFile(Server.MapPath("../tempPic/" & pictureName))
                    If bigHeight > 0 Then
                        objBitmap = New Bitmap(objGraphic, bigWidth, bigHeight)
                    Else
                        If objGraphic.Width > objGraphic.Height Then
                            If objGraphic.Width > bigWidth Then
                                Dim radio As Double = objGraphic.Height / objGraphic.Width
                                bigHeight = radio * bigWidth
                                objBitmap = New Bitmap(objGraphic, bigWidth, bigHeight)
                            Else
                                objBitmap = New Bitmap(objGraphic)
                            End If
                        Else
                            If objGraphic.Height > bigWidth Then
                                Dim radio As Double = objGraphic.Width / objGraphic.Height
                                bigHeight = radio * bigWidth
                                objBitmap = New Bitmap(objGraphic, bigHeight, bigWidth)
                            Else
                                objBitmap = New Bitmap(objGraphic)
                            End If
                        End If
                    End If
                    'Add ESD logo
                    If type = 1 Then
                        Dim picGraph As Graphics = Graphics.FromImage(objBitmap)
                        Dim overlay As Bitmap = New System.Drawing.Bitmap(Server.MapPath("../ESDlogo/ESDsign.gif"))
                        picGraph.DrawImage(overlay, (objBitmap.Width - (overlay.Width + 5)), 5)
                        overlay = Nothing
                        picGraph = Nothing
                    End If
                    objBitmap.Save(Server.MapPath("../BigPicture/" & pictureName))
                    objGraphic.Dispose()
                    objBitmap = Nothing
                    objGraphic = Nothing

                    'End Resize Big Pic
                    'Start Resize Thumpnail
                    objGraphic = System.Drawing.Image.FromFile(Server.MapPath("../BigPicture/" & pictureName))
                    ''---->crop picture
                    'Dim Lpoint As Integer = (objGraphic.Width / 2) - (objGraphic.Height / 2)
                    'Dim Rpoint As Integer = (objGraphic.Width / 2) + (objGraphic.Height / 2)
                    'objGraphic = CropImage(objGraphic, New Point(Lpoint, 0), New Point(Rpoint, objGraphic.Height))
                    ''---> end crop
                    If intHeight > 0 Then
                        objBitmap = New Bitmap(objGraphic, intWidth, intHeight)
                    Else
                        If objGraphic.Width > objGraphic.Height Then
                            If objGraphic.Width > intWidth Then
                                Dim radio As Double = objGraphic.Height / objGraphic.Width
                                intHeight = radio * intWidth
                                objBitmap = New Bitmap(objGraphic, intWidth, intHeight)
                            Else
                                objBitmap = New Bitmap(objGraphic)
                            End If
                        Else
                            If objGraphic.Height > intWidth Then
                                Dim radio As Double = objGraphic.Width / objGraphic.Height
                                intHeight = radio * intWidth
                                objBitmap = New Bitmap(objGraphic, intHeight, intWidth)
                            Else
                                objBitmap = New Bitmap(objGraphic)
                            End If
                        End If
                    End If
                    If type = 1 Then
                        Dim picGraph As Graphics = Graphics.FromImage(objBitmap)
                        Dim overlay As Bitmap = New System.Drawing.Bitmap(Server.MapPath("../ESDlogo/ESDsign_s.gif"))
                        picGraph.DrawImage(overlay, (objBitmap.Width - (overlay.Width + 5)), 5)
                        overlay = Nothing
                        picGraph = Nothing
                    End If
                    objBitmap.Save(Server.MapPath("../Thumpnail/" & pictureName))
                    objGraphic.Dispose()
                    objBitmap = Nothing
                    objGraphic = Nothing
                    Dim fileIn As New FileInfo(Server.MapPath("../tempPic/" & pictureName))
                    If fileIn.Exists Then
                        fileIn.Delete()
                    End If
                End If
            Next




Tag : .NET, VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-09-02 13:25:12 By : wavester View : 995 Reply : 4
 

 

No. 1



โพสกระทู้ ( 93 )
บทความ ( 0 )



สถานะออฟไลน์


ตามที่ผมเข้าใจคำสั่งที่จะหยุดทำงานคือคำสั่งที่อยู่ใน Try
หลังจากเข้า Catch เสร็จมันก็ไปทำงานต่อ
ไม่ได้หยุดการทำงานของโปรแกรมทั้งหมด








ประวัติการแก้ไข
2011-09-02 14:14:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-02 14:13:28 By : Marcuz
 


 

No. 2



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : Marcuz เมื่อวันที่ 2011-09-02 14:13:28
รายละเอียดของการตอบ ::
แล้วถ้าเกิดว่าผมอยากจะให้มันยกเลิกการทำงานทั้งหมด ถ้าพบว่ามี Error ผมต้องเขียนยังไงครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-02 14:20:23 By : wavester
 

 

No. 3



โพสกระทู้ ( 93 )
บทความ ( 0 )



สถานะออฟไลน์


ก็เอา Try คลุม Code ทั้งหมดไว้ครับ
ถ้ามันเจอ Error หลังจากบรรทัดที่ Error มันก็จะไม่ทำงาน
เพราะัมันไปเข้า Catch แล้ว


ประวัติการแก้ไข
2011-09-02 14:33:20
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-02 14:32:07 By : Marcuz
 


 

No. 4



โพสกระทู้ ( 49 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ เดี๋ยวจะลองดู
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-02 14:42:41 By : wavester
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปรึกษาปัญหาเกี่ยวกับ try exception ครับ ว่ามีหลักการเขียนอย่างไร
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่