Error Handling এবং Custom Error Pages

Logging এবং Error Handling - চেরিপাই (CherryPy) - Web Development

235

CherryPy তে Error Handling এবং Custom Error Pages ব্যবহারের মাধ্যমে আপনি ওয়েব অ্যাপ্লিকেশনগুলিকে আরো ব্যবহারবান্ধব এবং পেশাদারী করতে পারেন। যখন অ্যাপ্লিকেশনটি কোনো ত্রুটি বা ভুল রিকোয়েস্ট পায়, তখন একটি কাস্টম ত্রুটি পৃষ্ঠা দেখানো যেতে পারে, যাতে ইউজার ভালোভাবে বুঝতে পারে যে কি সমস্যা হয়েছে এবং তারা কীভাবে সমস্যার সমাধান করতে পারে।


CherryPy তে Error Handling

CherryPy তে Error Handling করা হয় on_error টুল এবং exception handling এর মাধ্যমে। আপনি কিছু নির্দিষ্ট HTTP ত্রুটি কোড (যেমন 404, 500) হ্যান্ডেল করতে পারেন এবং কাস্টম ত্রুটি বার্তা বা পৃষ্ঠা প্রদর্শন করতে পারেন।

CherryPy Error Handling এর প্রাথমিক ধারণা

CherryPy তে প্রতিটি রিকোয়েস্ট হ্যান্ডলিং করার সময় যদি কোনো ত্রুটি ঘটে, তবে সেটি একটি exception হিসেবে ধরা হয়। আপনি on_error টুল ব্যবহার করে ত্রুটি হ্যান্ডলিং কাস্টমাইজ করতে পারেন।

উদাহরণ: CherryPy Error Handling

import cherrypy

class MyApp:
    @cherrypy.expose
    def index(self):
        return "হ্যালো, CherryPy!"
    
    @cherrypy.expose
    def cause_error(self):
        raise ValueError("এটি একটি কাস্টম ত্রুটি!")

if __name__ == '__main__':
    cherrypy.quickstart(MyApp())

এখানে cause_error মেথডে একটি কাস্টম ValueError সৃষ্টি করা হয়েছে। চেরিপাই এই ত্রুটি ধরবে এবং একটি সাধারণ ত্রুটি বার্তা প্রদর্শন করবে।


Custom Error Pages তৈরি করা

CherryPy তে Custom Error Pages তৈরি করতে error_page কনফিগারেশন ব্যবহার করা যায়। আপনি একটি কাস্টম HTML পৃষ্ঠা বা JSON রেসপন্স তৈরি করতে পারেন, যা ইউজারকে ত্রুটির কারণ ব্যাখ্যা করে।

উদাহরণ: Custom Error Pages

import cherrypy

class MyApp:
    @cherrypy.expose
    def index(self):
        return "স্বাগতম CherryPy-তে!"
    
    @cherrypy.expose
    def cause_error(self):
        raise ValueError("এটি একটি কাস্টম ত্রুটি!")

    @cherrypy.expose
    def page_not_found(self):
        raise cherrypy.HTTPError(404, "এই পৃষ্ঠা পাওয়া যায়নি!")

if __name__ == '__main__':
    cherrypy.config.update({
        'error_page.404': 'page_not_found',  # 404 এর জন্য কাস্টম পৃষ্ঠা
    })
    cherrypy.quickstart(MyApp())

এখানে:

  • page_not_found মেথডে 404 ত্রুটি হ্যান্ডল করা হচ্ছে।
  • cherrypy.config.update ব্যবহার করে 404 ত্রুটি কোডের জন্য কাস্টম পৃষ্ঠা নির্ধারণ করা হয়েছে।

Error Handling এর জন্য Custom Error Pages

আপনি সহজেই 404, 500, বা অন্য কোনো ত্রুটি কোডের জন্য কাস্টম error pages তৈরি করতে পারেন।

উদাহরণ: কাস্টম 404 Error Page

import cherrypy

class MyApp:
    @cherrypy.expose
    def index(self):
        return "স্বাগতম CherryPy অ্যাপে!"
    
    @cherrypy.expose
    def cause_error(self):
        raise ValueError("এটি একটি কাস্টম ত্রুটি!")

    @cherrypy.expose
    def page_not_found(self):
        return '''
            <html>
                <body>
                    <h1>404 - পৃষ্ঠা পাওয়া যায়নি</h1>
                    <p>আপনি যে পৃষ্ঠাটি খুঁজছেন তা পাওয়া যায়নি।</p>
                </body>
            </html>
        '''

if __name__ == '__main__':
    cherrypy.config.update({
        'error_page.404': 'page_not_found',  # 404 ত্রুটির জন্য কাস্টম পৃষ্ঠা
    })
    cherrypy.quickstart(MyApp())

এখানে:

  • page_not_found মেথডটি একটি কাস্টম 404 পৃষ্ঠা রেন্ডার করে, যেখানে ইউজারকে জানানো হচ্ছে যে পৃষ্ঠা পাওয়া যায়নি।

Handling Specific HTTP Errors

CherryPy তে আপনি নির্দিষ্ট HTTP ত্রুটির জন্য কাস্টম পৃষ্ঠা তৈরি করতে পারেন, যেমন 404, 403, 500 ইত্যাদি।

উদাহরণ: কাস্টম 500 Internal Server Error Page

import cherrypy

class MyApp:
    @cherrypy.expose
    def index(self):
        return "স্বাগতম CherryPy-তে!"
    
    @cherrypy.expose
    def cause_error(self):
        raise RuntimeError("এটি একটি 500 ত্রুটি!")

    @cherrypy.expose
    def internal_server_error(self):
        return '''
            <html>
                <body>
                    <h1>500 - সার্ভার ত্রুটি</h1>
                    <p>কিছু সমস্যা ঘটেছে, দয়া করে পরে চেষ্টা করুন।</p>
                </body>
            </html>
        '''

if __name__ == '__main__':
    cherrypy.config.update({
        'error_page.500': 'internal_server_error',  # 500 ত্রুটির জন্য কাস্টম পৃষ্ঠা
    })
    cherrypy.quickstart(MyApp())

এখানে:

  • internal_server_error মেথডটি একটি কাস্টম 500 পৃষ্ঠা রেন্ডার করে, যেখানে সার্ভার ত্রুটির কথা জানানো হচ্ছে।

CherryPy তে Logging

চেরিপাই তে logging ব্যবস্থাপনা ত্রুটিগুলি ট্র্যাক করার জন্য গুরুত্বপূর্ণ। আপনি cherrypy.log() ব্যবহার করে ত্রুটির লগ রাখতে পারেন।

উদাহরণ: Error Logging

import cherrypy

class MyApp:
    @cherrypy.expose
    def index(self):
        return "স্বাগতম CherryPy অ্যাপে!"
    
    @cherrypy.expose
    def cause_error(self):
        raise RuntimeError("এটি একটি লগ ত্রুটি!")

if __name__ == '__main__':
    cherrypy.config.update({
        'log.error_file': 'error.log',  # ত্রুটি লগ ফাইল
        'log.access_file': 'access.log',  # অ্যাক্সেস লগ ফাইল
    })
    cherrypy.quickstart(MyApp())

এখানে:

  • ত্রুটির লগ error.log ফাইলে সেভ হবে এবং অ্যাক্সেস লগ access.log ফাইলে সেভ হবে।

CherryPy তে Error Handling এবং Custom Error Pages ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনকে আরো ব্যবহারবান্ধব এবং পেশাদারী করে তুলতে পারেন। সঠিক ত্রুটি বার্তা প্রদান ইউজারদের সমস্যা বুঝতে এবং তা সমাধান করতে সহায়তা করে। CherryPy তে HTTP Error Codes (যেমন 404, 500) হ্যান্ডলিং সহজ, এবং কাস্টম পৃষ্ঠা তৈরি করা খুবই কার্যকর।

Content added By
Promotion

Are you sure to start over?

Loading...