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) হ্যান্ডলিং সহজ, এবং কাস্টম পৃষ্ঠা তৈরি করা খুবই কার্যকর।
Read more