ভুয়া ত্রুটি বার্তা


18

একটি প্রোগ্রাম লিখুন যা সংকলক বা দোভাষীর সিনট্যাক্স ত্রুটি বার্তা প্রিন্ট করে। ত্রুটি বার্তাটি বিভ্রান্তিমূলক হওয়া উচিত যাতে কোড রক্ষণকারীরা ত্রুটিটি নকল হয়েছিল তা খুঁজে পেতে কয়েক দিন সময় নেবে, তার অর্থ, আপনার অবহেলা করা উচিত (এবং আপনার উদ্দেশ্যটি গোপন করুন)। এছাড়াও, ত্রুটিটি যথাসম্ভব যথাযথ হওয়া উচিত এবং কোডটির সঠিকভাবে উল্লেখ করা উচিত।

অনুপযুক্ত ভাষাগুলির জন্য, ধরে নিন যে আপনার কোড রক্ষণাবেক্ষণকারী compile program.p && ./programকমান্ড লাইনে প্রোগ্রামটি সংকলন করতে এবং পরিচালনা করতে করবে, তার অর্থ, সংকলক বা প্রোগ্রাম নিজে থেকেই আউটপুট আসে কিনা সে পার্থক্য করতে পারে না। এছাড়াও, ধরে নিন যে আপনার কোড রক্ষণাবেক্ষণকারী সিনট্যাক্স ত্রুটি বার্তাগুলি চালু করবে।

রেফারেন্সের জন্য, আমি এখানে তৈরি একটি উদাহরণ: https://gist.github.com/359604

DATAঅধ্যায় ত্রুটি বার্তা স্ট্রিং এনকোড এবং হ্যাশ %abcdefডিকোড টেবিল। ব্যাকস্ল্যাশগুলিতে ত্রুটিটি মুদ্রিত রেফারেন্সগুলি তৈরি করে যা একটি কোড রক্ষণকারী ব্যাকস্ল্যাশগুলি গণনা করার চেষ্টা করবে।

এন্ট্রি দ্বারা গ্রেড করা হবে:

  • কোড একটি ছদ্মবেশী সুস্পষ্ট অভিপ্রায় আছে /6
  • কোড ত্রুটিটি সঠিকভাবে পুনরুত্পাদন করে /16 (আপনার পয়েন্টটি 16 দিয়ে শুরু হবে এবং প্রতিটি ত্রুটির জন্য সংশ্লিষ্ট কারণ দ্বারা বিভাজন)
    • সঠিক মূলধন: 4
    • সঠিক লাইন নম্বর এবং কলাম নম্বর: 4
    • সঠিক শব্দ: প্রতিটি ভুল শব্দের জন্য 2
  • রেখা নম্বরটি রেফারেন্স কোড রক্ষণকারীকে বিভ্রান্ত করে /3

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

./pythontest1.py: line 7: syntax error near token `('
./pythontest1.py: line 7: `   x=input("Enter a number:") #Number input'

"টোকেন" এর আগে "অপ্রত্যাশিত" না থাকার জন্য যথাযথতার জন্য 8 (16/2) পায়, একটি সাধারণ পাইথন ইন্টারপ্রেটার প্রদর্শন করে

./pythontest1.py: line 7: syntax error near unexpected token `('
./pythontest1.py: line 7: `   x=input("Enter a number:") #Number input'

যদি আপনার "কোড সঠিকভাবে ত্রুটির পুনরুত্পাদন করে" পয়েন্টটি 1 এর কম হয়, আপনার প্রবেশকে অযোগ্য ঘোষণা করে।

টাই করার ক্ষেত্রে, আমি অতিরিক্ত গ্রেডিংয়ের কারণগুলি রাখব।


আহ ... আমি স্পার্কির সাম্প্রতিক অশ্লীল প্রশ্নটি উদ্দেশ্যহীন না হওয়ার কারণে বন্ধ করে দিয়েছি এবং এখন আমরা পিটারের আন্ডারহ্যান্ডড জিনিসকে পেয়েছি এবং এটি (যা আমি স্বীকার করি যে বস্তুনিষ্ঠতা অর্জনের জন্য সাহসী প্রচেষ্টা করে)) বরং কেবল উইল-নিলির উপর বসে থাকুন বা আমার ব্যক্তিগত কুসংস্কারের ভিত্তিতে বেছে নিয়েছি আমি মেটা নিয়ে অন্য একটি বিষয় খুলতে যাচ্ছি, বা কোনও পুরানোটিকে পুনরুত্থিত করতে পারি। সচেতন থাকুন যে জেফ মনে করেন যে "উদ্দেশ্য" একটি প্রয়োজন।
dmckee


একটি সমাধান জনপ্রিয়তা-প্রতিযোগিতা হতে পারে । ভাল, একটি উদ্দেশ্য জয়ের মানদণ্ড।
জোহানেস কুহান

উত্তর:


35

পাইথন

import sys,traceback
try:
  f=open(sys.argv[0])
  print eval(f.readline())
except Exception, e:
  traceback.print_exc(0)

এটি এমন একটি প্রোগ্রাম যা কমান্ড লাইনে একটি ফাইলের নাম নেওয়া উচিত, এতে প্রথম লাইনটি মূল্যায়ন করে ফলাফলটি মুদ্রণ করা উচিত। এটিতে 2 টি বাগ রয়েছে। প্রধান ত্রুটিটি হ'ল এটি ব্যবহার করা উচিত sys.argv[1], না sys.argv[0], তাই এটি প্রোগ্রামটি নিজেই মূল্যায়ন করে শেষ করে, প্রথম যুক্তি দ্বারা ফাইলটির বিষয়বস্তু নয়। দ্বিতীয় print_excত্রুটিটি হ'ল যুক্তিটি এটিকে স্ট্যাকের মধ্যে কেবল গভীরতম ফ্রেমটি মুদ্রণ করে তোলে, ত্রুটিটি এর ভিতরে ঘটেছিল এই সত্যটি লুকিয়ে রাখে eval। ফলস্বরূপ, আপনি এর মতো একটি ত্রুটি পান:

$ python fake_error.py twelve 
Traceback (most recent call last):
  File "<string>", line 1
     import sys,traceback
          ^
 SyntaxError: invalid syntax

এটি দেখতে অনেকটা প্রোগ্রামটির প্রথম লাইনে একটি সিনট্যাক্স ত্রুটিযুক্ত দেখাচ্ছে। ফাইলটি ঠিক যেমনটি ঠিক তেমন সঠিক <string>নয় fake_error.py, তবে অন্যথায় এটি ক্ষেত্রে ক্ষেত্রে পৃথক নয় যেখানে উদাহরণস্বরূপ, আপনি importভুল বানান করেন ।

উভয় ত্রুটি কিছুটা "আন্ডারহ্যান্ডেড" যাতে তারা দুর্ঘটনাক্রমে হতে পারে।


এটি উজ্জ্বল
ক্রંચার

উজ্জ্বল। এটি আমাকে পাইথনের আরেকটি বিজোড়তার কথা মনে করিয়ে দেয়। raiseপাইথন 2 এ চলছে , কিন্তু আইডিএল-তে পাইথনের ডিফল্ট আইডিই, সারিগুলির সম্পর্কে গিব্বারিশ মুদ্রণের অভ্যন্তরীণ ত্রুটির কারণ ঘটায়। Traceback (most recent call last): ** IDLE Internal Exception: File "2.7/lib/python2.7/idlelib/run.py", line 325, in runcode exec code in self.locals File "2.7/lib/python2.7/idlelib/run.py", line 111, in main seq, request = rpc.request_queue.get(block=True, timeout=0.05) File "2.7/lib/python2.7/Queue.py", line 176, in get raise Empty
ম্যাট

10

একটি ব্যবহারিক রসিকতা মনে করিয়ে দেয়।

$ ls -l
$ cat readme.txt
cat: readme.txt: No such file or directory
$ echo 'cat: readme.txt: No such file or directory' >readme.txt
$ ls -l
total 8
-rw-r--r--  1 florian  staff  43 Mar 16 09:52 readme.txt
$ cat readme.txt
cat: readme.txt: No such file or directory
$ 

9

BrainF ***

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>++++++++++[<+++++++++++<++++++++++<++++++++++<+++++++++++<+++++++++++<+++<+++++++++<+++<++++++++++<+++++++++++<++++++++++<+++++++++++<++++++++++<+++++++++++<+++++++++++<+++<+++++++++++<+++++++++<+++<++++++++++<+++++++++++<+++++++++++<++++++++++<++++++++++<+++++++++<+++<++++++++++<++++++++++<+++++++++++<+++++++++<++++++++++<+++++++++++<+++++++++++<+++++++++<+++<+++++++++++<++++++++++<++++++++++<+++++++++++<+++++++++++<+++<+++++++++<+++<++++++++++<+++++++++++<++++++++++<+++++++++++<+++++++++++<++++++++++<+++++++++<+++<+++++<+++++++++++<+++++++++++<+++++++++++<+++++++++++<++++++++++<+++<++++++++++++<+++++++++<+++++++++++<+++++++++++<++++++++++++<++++++++<+++<+++<++++<++++<++++<+++++++>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-]<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.>++.>++.>++.>+++.>++.>+++.>+.>.>++++++.>+++++++.>.>++.>+.>++++.>++++.>+.>++++.>++++++++.>++.>+++++++++.>++++++++.>+.>+++++.>+++++.>.>+++.>++.>+++.>++.>++++++.>+.>+++++++.>+.>.>++.>+++++++.>++.>++.>+.>+++++++.>++++.>+.>.>++.>++++++++.>+.>++.>+.>++++.>+.>++.>+++++++.>.>++.>+.>++.>+.>.>+++++.>.>+++.>++.>+.>++.>++++++.>+.>+++++++.>+.>.>

আমি আগে ব্যবহৃত বিশেষ সংকলকটি খুঁজে পাচ্ছি না, তবে আমি আপনাকে আশ্বাস দিচ্ছি যে এটিই সঠিক ত্রুটির বার্তা।


5
বিএফ সংকলক ছাড়া আপনারা যারা কৌতূহলী তাদের জন্য, এই প্রিন্ট করে, "এফ ***! সিনট্যাক্স ত্রুটি: সমাপ্তি] টোকেন একটি খোলার আগে উপস্থিত হয়েছিল [টোকেন"
পিটার ওলসন

1
এটা তোলে সি জি, Minitech আপনাকে দেখে ভালো লাগলো:)
Bojangles

লল, পুনর্বিবেচনার ইতিহাস মজাদার: পি
ডুরকনব

1

জাভা

throw new Error();  

আমি জানতাম না যে আপনি আসলে একটি অযথিত ব্যতিক্রম ছোঁড়াচ্ছেন (যেমন উদাহরণ হিসাবে), বা কোনও ত্রুটির বার্তা সিমুলেট করা হচ্ছে কিনা I যদি এটি হয় তবে এটি কাজ করা উচিত:

সি

printf("FATAL ERROR #0xBAD\nProgram execution stopped\n\nIn line 123, character 321, of file 'buggy.c'");

(এটি ধরে নেওয়া হয়েছে যে stdio.h# অন্তর্ভুক্ত)


ওফস, অবলম্বন অংশ সম্পর্কে কেবল আপনার পোস্টটি গভীরভাবে পড়ুন। আমি এটিতে একটি বিস্ময়কর সংযোজন করব, তবে আমার বর্তমানে কোনও উপায়ে অ্যাক্সেস নেই। [:(] যখন আমি একটি পাই, আমি অবশ্যই একটি অস্পষ্ট সংস্করণ পোস্ট করব (কে জানে, সম্ভবত অন্য
ল্যাংয়েও

0

গেম মেকার ল্যাঙ্গুয়েজ

show_error("Error: Undefined variable a##Line 1, character 4, of event Create in obj_controller",0)

0

পদক্ষেপ 3

trace("TypeError: Error #1009: Cannot access a property or method of a null object reference.");
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.