চেষ্টা এবং ব্লক ধরার ক্ষেত্রে উভয় ক্ষেত্রেই একই কোডটি স্থাপন করার কোনও ভাল কারণ আছে?


13

ফাইল ইন: app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Datetime.php, মধ্যে render()পদ্ধতি, এটা দেখে মনে হচ্ছে সঠিক একই কোড উভয় ব্যবহার করে দেখুন এবং ধরা ব্লকগুলিতে চালানো হচ্ছে। ব্যতিক্রমটি একেবারেই পরিচালনা করা হয় না। কোডটি লেখার জন্য কারণগুলি (যদি থাকে তবে) কী তা জানতে আগ্রহী আমি:

try {
     $data = Mage::app()->getLocale()
         ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format);
} catch (Exception $e) {
     $data = Mage::app()->getLocale()
         ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format);
}

উত্তর:


3

আমার কাছে সেই নির্দিষ্ট ক্ষেত্রে এ জাতীয় কোডের কোনও কারণ নেই।

সময়সীমার অনুরোধগুলি মোকাবেলা করার সময় আপনি যে কারণগুলি করতে পারেন তা আমি ভাবতে পারি।

উদাহরণ স্বরূপ:

  • কিছু কোড সমাপ্ত হতে একটি পাগল দীর্ঘ সময় নেয়
  • আপনি এমন কিছু করার চেষ্টা করছেন যা এই কোডের ফলাফলের উপর নির্ভর করে
  • কোডটি এখনও সম্পন্ন না হওয়ায় একটি ব্যতিক্রম ছুঁড়ে দেওয়া হয়েছে
  • আপনার ক্যাচ ব্লকে আপনি কিছু অপেক্ষা করার সময় যোগ করুন ( sleep) এবং আবার চেষ্টা করুন

তবে যে কোনও ক্ষেত্রে এটি খুব খারাপ ডিজাইন এবং এটি ব্যর্থতার কারণে সম্পদ ব্যয় হওয়ায় কার্য সম্পাদনের দিক থেকে এটি খারাপ।

ব্লকটি কেবল catchব্যতিক্রম হ্যান্ডলিং এবং অসম্পূর্ণ উপাদানগুলির রোলব্যাকের জন্য অবশ্যই ব্যবহার করা উচিত (উদাহরণস্বরূপ ডাটাবেস রোলব্যাক)

আপনার উল্লিখিত কোডটির জন্য আমি পুরো পদ্ধতিটি যাচাই করে দেখিনি তবে যখনই আমি এর মতো কোড দেখি তখনই আমার মনে হয় যে কোডটি রিফ্যাক্ট করা উচিত এবং / অথবা এই কোডটির পিছনে কারণটি বুঝতে প্রোগ্রামারের সাথে একটি আলাপ প্রয়োজন is কোডে আরও গভীর সমস্যাগুলি লুকিয়ে রাখতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.