ข้อความแสดงข้อผิดพลาดที่สั้นที่สุด


135

ท้าทาย

เขียนโปรแกรมสั้นที่สุดที่เมื่อรวบรวมหรือดำเนินการผลิตข้อความแสดงข้อผิดพลาดร้ายแรงน้อยกว่าโปรแกรมเอง raiseข้อผิดพลาดอาจไม่ได้รับการสร้างขึ้นโดยโปรแกรมตัวเองเช่นงูหลาม คำตอบที่ถูกต้องจะต้องมีทั้งรหัสและข้อความแสดงข้อผิดพลาด คำตอบที่ถูกต้องสั้นที่สุดชนะ

ไม่มีข้อความแสดงข้อผิดพลาดไม่นับเป็นข้อความแสดงข้อผิดพลาด

ตัวอย่าง (Lua)

รหัส (46 ไบต์):

[
--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

ข้อผิดพลาด (45 ไบต์):

[string "[..."]:1: unexpected symbol near '['

ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
Dennis

1
@ เดนนิสฉันคิดว่านั่นเป็นวิธีหนึ่งในการแก้ปัญหา "OP ไม่ได้แก้ไขปัญหาการชี้แจงให้ชัดเจน"
Ørjan Johansen

1
ขอบคุณที่ตอบรับคำตอบของฉันซึ่งได้รับการโหวตมากที่สุด อย่างไรก็ตามนี่คือการติดแท็กรหัสกอล์ฟดังนั้นคุณควรยอมรับคำตอบนี้ซึ่งสั้นที่สุด
MD XF

@smartpeople นี่คือ: " __main__.CodeException: Raised an &rror." ข้อผิดพลาดของฉันหรือนี่คือ: " Raised an &rror."
FantaC

TrumpScript ทำงานในประเทศจีน?
Stan Strum

คำตอบ:


58

ed , 3 ไบต์

หมายเหตุ: คำตอบส่วนใหญ่ที่นี่ไม่สนใจบรรทัดใหม่ต่อท้ายที่พิมพ์เป็นส่วนหนึ่งของข้อความแสดงข้อผิดพลาดในการนับของพวกเขา แต่ผมไม่เห็นอะไรในคำถามที่จะปรับไม่สนใจมันและผู้เขียนเห็นว่าการขึ้นบรรทัดใหม่ควรจะรวม ดังนั้นหากคำถามเปลี่ยนไปฉันจะรวมคำถามนั้น

รหัส (ด้วยการขึ้นบรรทัดใหม่):

??

ข้อผิดพลาด (พร้อมขึ้นบรรทัดใหม่):

?


19
จริงๆแล้วมันเป็นไปไม่ได้ที่จะเอาชนะ : P
มนุษย์

1
ed สามารถทำการทดสอบแบบบวกและดั้งเดิมได้หรือไม่ หรือว่าไม่จำเป็นสำหรับความท้าทายประเภทนี้?
Stephen

4
@ StepHen ใช่แล้วมันสามารถทำการทดสอบเพิ่มเติมและขั้นแรกได้ด้วยวิธีเดียวกับเคล็ดลับ regex-with-backreferences
Anders Kaseorg

1
ฉลาดมาก แต่ '?' ไม่ถึงตาย
Mark Plotnick

2
ข้อผิดพลาดจะร้ายแรงหากรหัสไม่ได้อ่านจากเทอร์มินัล ลองออนไลน์!
Dennis

59

C (Linux รุ่นใหม่) ขนาด 19 ไบต์

ฉันจะทำ segfault ที่มีชื่อเสียงของฉัน แต่มนุษย์ทั้งหมดขโมยมัน

main(){longjmp(0);}

เอาท์พุท (18 ไบต์):

Segmentation fault

ตอนนี้คุณมีคะแนนสูงกว่าฉันแล้ว ... Win-win?
มนุษย์โดยรวม

1
ขอให้เรายังคงอภิปรายนี้ในการแชท
Dennis

ไม่มีโลแคลอื่นที่มีเวอร์ชันที่สั้นกว่า (เพื่อให้คุณสามารถใช้main(){main();})
12431234123412341234123

@ 12431234123412341234123 ไม่ใช่ที่ฉันรู้ นอกจากนี้main(){main();}ไม่รับประกันว่าจะทำผิดพลาด
MD XF

1
@MDXF ไม่มีการรับประกัน (และด้วยการเปิดใช้งานการเพิ่มประสิทธิภาพใน gcc หรือเสียงดังกราวมันก็จบลงด้วยการวนซ้ำไม่รู้จบหรือไม่สนใจการโทร) แต่ใน Code Golf เราจำเป็นต้องมีการติดตั้งใช้งานที่ไม่รับประกัน
12431234123412341234123


34

JavaScript (Firefox), 31 ไบต์

# This is a comment, right? ...

โยนข้อผิดพลาดนี้:

SyntaxError: illegal character

ทดสอบในคอนโซลของ Firefox 54.0.1 บน Windows 7


26

Python 2 , 87 79 ไบต์

-8 ไบต์ขอบคุณZacharýและ Erik the Outgolfer

from __future__ import braces
#i am most surely seriously actually totallyhuman

ลองออนไลน์!

ข้อความแสดงข้อผิดพลาด 78 ไบต์:

aสมมติว่ารหัสถูกเก็บไว้ในไฟล์ชื่อ

  File "a", line 1
    from __future__ import braces
SyntaxError: not a chance

นี่คือไข่อีสเตอร์ตัวเล็ก ๆ ที่ดีใน Python : D


1
คุณสามารถสันนิษฐานได้ว่าเป็นชื่อไฟล์แบบชาร์ต!
Zacharý

1
สมมติว่าชื่อไฟล์ 1 ถ่านคุณสามารถกอล์ฟนี้
Erik the Outgolfer


1
แต่ข้อผิดพลาดจะต้องมีขนาดเล็กกว่าโปรแกรมเอง ...
รั่วนูน

1
หากคุณใช้ IDLE คุณจะได้รับ\s\sFile "<stdin>", line 1\nSyntaxError: not a chanceเพียง 50 ไบต์ [ \sเป็นช่องว่างและ\nเป็นบรรทัดใหม่] ดังนั้นคุณจึงสามารถรับโปรแกรม 51 ไบต์ ..
boboquack

20

Haskell ขนาด 13 ไบต์

main = (main)

บันทึกเป็นt.hsหรืออีกชื่อหนึ่งอักขระรวบรวมghcและเรียกใช้ ข้อความแสดงข้อผิดพลาด (พร้อมการขึ้นบรรทัดใหม่):

t: <<loop>>

19

แท๊กซี่ , 38 21 ไบต์

Switch to plan "abc".

ผลิต:

error: no such label

ลองออนไลน์!

-17 ไบต์ขอบคุณ Engineer Toast

พยายามเปลี่ยนเป็น "abc" ซึ่งไม่มีอยู่ คุณจะมี[abc]ที่ไหนสักแห่ง


4
คุณจะได้รับลงไป 21 ไบต์ที่มีการผลิตSwitch to plan "abc". error: no such labelนี่อาจเป็นหนึ่งในความท้าทายของการเล่นกอล์ฟที่ซึ่ง Taxi สามารถใช้ภาษาดั้งเดิมได้บ้าง
Engineer Toast

@EngineerToast ขอบคุณไม่คิดอย่างนั้น
Stephen

18

> <> , 26 ไบต์

>>>>>>>>>>>>>>>>>>>>>>>>>:

ลองออนไลน์!

ทุกข้อผิดพลาดใน Fish คือsomething smells fishy...ดังนั้นเพียงแค่เลื่อนตัวชี้เวลาเพียงพอที่จะนานกว่านั้นและพยายามที่จะทำซ้ำด้านบนของสแต็กซึ่งว่างเปล่าในเวลา


2
ฉันชอบมันและแน่นอนที่สุดก็คือโซลูชั่นที่น่า
จับตามอง

@ Xan-KunClark-Davis ถอนหายใจคุณต้อง ... : P
HyperNeutrino

18

JavaScript (Firefox) ขนาด 21 ไบต์

(a=null)=>a.charAt(1)

ข้อผิดพลาด (20 ไบต์) :TypeError: a is null


2
D'โอ้! ฉันรู้ว่ามันสั้นกว่านี้ ...
ETHproductions

ฉันมีความคิดเดียวกันโดยมี a = null; a.x01234567890 จำนวนไบต์เท่ากัน
RuteNL

16

System V shell ขนาด 25 ไบต์

mount /dev/hda1 /mnt/hda1

ข้อความแสดงข้อผิดพลาด (23 ไบต์):

mount: not a typewriter

"ไม่ใช่เครื่องพิมพ์ดีด" หรือENOTTYเป็นรหัสข้อผิดพลาดที่กำหนดไว้ในerrno.hระบบ Unix สิ่งนี้ใช้เพื่อระบุว่ามีการระบุหมายเลข ioctl (อินพุต / เอาต์พุตควบคุม) ที่ไม่ถูกต้องในการเรียกใช้ระบบ ioctl ในระบบของฉันใน/usr/include/asm-generic/errno-base.hฉันสามารถหาบรรทัดนี้:

#define ENOTTY          25      /* Not a typewriter */

ในเวอร์ชัน 6 UNIX และรุ่นเก่ากว่า I / O ถูก จำกัด ไว้ที่อุปกรณ์เทอร์มินัลที่เชื่อมต่อแบบอนุกรมเช่น teletype (TTY) สิ่งเหล่านี้มักถูกจัดการผ่านgttyและการsttyเรียกของระบบ หากมีการพยายามใช้การเรียกระบบเหล่านี้อย่างใดอย่างหนึ่งบนอุปกรณ์ที่ไม่ใช่เทอร์มินัลENOTTYถูกสร้างขึ้น

ทุกวันนี้ไม่จำเป็นต้องใช้โทรศัพท์พิมพ์ เมื่อgttyและsttyถูกแทนที่ด้วยioctl, ENOTTYถูกเก็บไว้ บางระบบยังคงแสดงข้อความนี้ แต่ส่วนใหญ่พูดว่า "ioctl ที่ไม่เหมาะสมสำหรับอุปกรณ์" แทน


กรุณาอธิบาย ...
Mega Man

@ MegaMan อัพเดตพร้อมคำอธิบาย
MD XF

1
โหวตขึ้นสำหรับคำอธิบาย enlightening จริง
Xan-Kun Clark-Davis

11

QBasic ขนาด 11 ไบต์

มีสองวิธีแก้ปัญหาของ 11 ไบต์ใน QBasic ซึ่งหนึ่งในนั้นอาจจะกอล์ฟเพิ่มเติม ข้อความแสดงข้อผิดพลาดที่สั้นที่สุด QBasic คือoverflowและสามารถถูกเรียกใช้เช่น:

i%=i%+32677

นี้พ่นoverflowเพราะสูงสุดของจำนวนเต็ม ( i%) 32676เป็น ฉันเล่น32677กอล์ฟไม่ได้หากไม่มี QBasic นำแสดงโดยอัตโนมัตินี้ให้นาน ...

ข้อผิดพลาดอีก 11 out of dataไบต์จะเป็น QBasic มีDATAคำสั่งที่เก็บข้อมูลในโปรแกรมซึ่งสามารถเข้าถึงได้ในภายหลังโดยREADคำสั่ง การออกREADมากกว่าDATAs ทำให้เกิดข้อผิดพลาด:

READ a$ '--

โปรดทราบว่าคำสั่งนั้นมีการเพิ่มความคิดเห็นเพื่อให้ได้ความยาวสูงสุดของข้อความแสดงข้อผิดพลาด ใช่ฉันมีข้อความข้อผิดพลาดกับโปรแกรมที่สั้นกว่าและโปรแกรมที่มีข้อความแสดงข้อผิดพลาดสั้นลง ...


11

C (Modern Linux), 19 ไบต์

ฉันแนะนำสิ่งนี้ในการแชท แต่ไม่มีใครรับโอกาส : P เครดิตเพื่อตอบเฮฮา MD XF ของ

main(){puts('s');;}

ข้อความแสดงข้อผิดพลาด 18 ไบต์

Segmentation fault

1
แต่ข้อความแสดงข้อผิดพลาดจะต้องเล็กกว่าตัวโปรแกรมเอง ...
Leun Nun

การนับไบต์ถูกทำให้ผิดพลาดขึ้นฉันไม่ดี
สิ้นเชิงมนุษย์

9
นี่เป็นข้อความทั่วไปที่พิมพ์โดยเชลล์เมื่อกระบวนการย่อยจบลงด้วยรหัสการออก 139 ตัวโปรแกรม C เองก็ไม่ได้เกิดข้อผิดพลาด แต่อย่างใด
Dennis

7
@Dennis Exit code 139 เป็นอีกคำสั่งที่สร้างขึ้นโดยเชลล์ Unix แยกความแตกต่างระหว่างสัญญาณ 11 ( W_EXITCODE(0, 11) == 11) และรหัสทางออก 139 ( W_EXITCODE(139, 9) == 139 << 8) เชลล์ตั้งค่าแบบ$?ไม่ข้ามไปWIFEXITED(wstatus) ? WEXITSTATUS(wstatus) : WTERMSIG(wstatus) + 128แต่ภาษาส่วนใหญ่จะเปิดเผยความแตกต่าง
Anders Kaseorg

2
@Anders WIFEXITED(wstatus)เทียบเท่ากับDIVORCE(alimony)โอกาสใด ๆ ?
Janus Bahs Jacquet

11

Javascript (V8), 24 ไบต์

decodeURIComponent('%');

ข้อผิดพลาด 23 ไบต์:

URIError: URI malformed

การทดสอบบนNodejs v6.11.0และGoogle Chrome v59.0.3071.115

ลองออนไลน์!

โปรดทราบว่า TIO ขยายข้อความแสดงข้อผิดพลาด


5
ยินดีต้อนรับสู่ PPCG!
Stephen


10

PowerShell , 215 189 ไบต์

[]
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

ลองออนไลน์!

ดังนั้น PowerShell จึงมี ... ข้อความแสดงข้อผิดพลาด ... verbose ... นอกจากนี้ข้อความแสดงข้อผิดพลาดที่ไม่ใช่ไวยากรณ์ส่วนใหญ่คือข้อยกเว้นรันไทม์ซึ่งหมายความว่าข้อความเหล่านั้นไม่ร้ายแรงซึ่งช่วยลดปัญหานี้เพื่อให้ต้องค้นหาข้อผิดพลาดในการแยกวิเคราะห์ระยะสั้น

ฉันคิดว่านี่เป็นหนึ่งในที่สั้นที่สุดหากไม่ใช่ที่สั้นที่สุด @TessellatingHeckler ได้แสดงให้เห็นว่านี่เป็นข้อผิดพลาดในการแยกวิเคราะห์สั้นที่สุดและยังคงมีน้ำหนักเป็น188ไบต์สำหรับข้อความแสดงข้อผิดพลาด ดังนั้นโดยทั่วไปเราจำเป็นต้องผนวก1s เพียงพอที่จะเข้าถึง189ไบต์ของ "รหัส"

c:\a.ps1ตัวอย่างเช่นการรันโลคัลนี้จะลดจำนวนไบต์จำนวนหนึ่งเนื่องจากเป็นเพียงพา ธ ไฟล์ที่สั้นลง แต่จากนั้นจะไม่สามารถใช้งานได้ใน TIO

เกิดข้อผิดพลาด:

At /tmp/home/.code.tio.ps1:1 char:2
+ []
+  ~
Missing type name after '['.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : MissingTypename

ฉันถูกถามคำถามสามข้อในความคิดเห็นหนึ่งในนั้นที่คุณถาม แต่ทั้งสองคุณไม่ได้ถามทั้งคู่กับคำตอบของคุณไม่ใช่ของคุณ
user72528

@ user72528 ใช่ฉันพบว่าสนุกเช่นกัน
AdmBorkBork

คุณสามารถใช้ชื่อไฟล์ถ่าน!
Zacharý

1
@ Zacharýฉันทำได้ แต่แล้วมันก็ไม่สามารถทำซ้ำได้ใน TIO เนื่องจาก TIO จัดการกับ sandboxing อย่างไร ฉันชอบที่จะให้มันใช้งานได้ใน TIO มากกว่าที่จะบันทึกไม่กี่ไบต์
AdmBorkBork

2
สิ่งที่เกี่ยวกับ[]ซึ่งดูเหมือนว่าข้อผิดพลาดที่สั้นกว่าMissing type name after '['และขึ้นอยู่กับว่าคุณนับได้ประมาณ 190 - tio.run/##K8gvTy0qzkjNyfn/PzqWy3Dogv//AQ ( แยกจากสตริงตัวแยกวิเคราะห์ที่นี่ที่ดูเหมือนว่าข้อผิดพลาด parser สั้นที่สุดให้ฉัน ([xml](gc .\ParserStrings.resx)).root.data.value | sort { $_.length } -Desc)
TessellatingHeckler

9

พลเรือจัตวา 64 พื้นฐาน 15 ไบต์

?SYNTAX   ERROR

ผลิต

?SYNTAX  ERROR

(หมายเหตุช่องว่างสองช่องในข้อความแสดงข้อผิดพลาดที่โปรแกรมมีสามช่อง)

?SYNTAX ERRORถูกมัดอยู่กับ?VERIFY ERRORเป็นข้อความที่สามที่สั้นที่สุดข้อผิดพลาดที่ C64 พื้นฐานสามารถผลิตและสั้นที่สุดที่สามารถเรียกได้อย่างน่าเชื่อถือด้วยรหัส (ข้อความสั้นที่สุดBREAK IN 1ต้องโต้ตอบกับผู้ใช้ในขณะที่?LOAD ERRORต้องใช้เทปชำรุดหรือฟล็อปปี้ดิสก์และ?VERIFY ERRORต้องมีการปรากฏตัวของ ฟลอปปี้หรือเทปที่มีไฟล์ที่ไม่ตรงกับโปรแกรมใน RAM)


1
ฮาไม่ได้เห็นนี้เมื่อผมโพสต์เหมือง ดีเสมอที่จะเห็นผู้ใช้ BASIC รายอื่น ... +1
MD XF


7

ทับทิม ( 33 32 ไบต์)

32 ไบต์

&
#abcdefghijklmnopqrstuvwxyz12

โยนข้อผิดพลาด (สมมติว่าในไฟล์ชื่อ "a"):

31 ไบต์

a:1: syntax error, unexpected &

แก้ไข : โกนไบต์ด้วยการใช้&แทนที่จะ<<ขอบคุณEricที่มาพร้อมกับโซลูชัน Ruby ที่สั้นกว่า: http://codegolf.stackexchange.com/a/135087/65905


1
ยินดีต้อนรับสู่ PPCG!
Martin Ender

@EricDuminil ดี! ฉันคิดว่าตัวดำเนินการตัวเดียวทั้งหมดถูกยกมาในข้อความแสดงข้อผิดพลาด แต่คุณพูดถูก: &ไม่ใช่ เรียบร้อย! นอกจากนี้หาที่ดีกับการหลบหนี hex ฉันพยายามหาข้อความแสดงข้อผิดพลาดร้ายแรงที่สั้นลงและไม่สามารถติดตามได้อย่างอื่นนอกเหนือจากข้อผิดพลาดทางไวยากรณ์
ameketa

@ameketa: ฉันเขียนโปรแกรม bruteforce และทดสอบโปรแกรม Ruby ขนาด 1, 2 และ 3 ไบต์: D ขอบคุณสำหรับลิงค์
Eric Duminil

5

Brainf ** k, 17 ไบต์, ล่ามนี้

+++++++++++++++<<

Brainf ** k เป็นภาษาที่เรียบง่ายที่ล่ามเกือบทุกคนมีข้อความแสดงข้อผิดพลาดแตกต่างกัน สิ่งนี้ใช้Memory Error: -1สำหรับเมื่อตัวชี้ถูกย้ายไปทางซ้ายมากเกินไปและคุณพยายามดำเนินการอื่น


ฉันเดาว่าการเลือกล่ามนั้นเป็นส่วนหนึ่งของความท้าทายเหมือนกับการเลือกภาษา
user72528

@ user72528 ดีที่นี่เรากำหนดภาษาโดยล่ามดังนั้นความท้าทายนี้เป็นบิตเกี่ยวกับการเลือกล่ามกับข้อความผิดพลาดที่สั้นที่สุด :)
HyperNeutrino

1
ใครจะเป็นคนที่ฉลาด ไม่มีใคร? Alright
Erik the Outgolfer

โซลูชันที่ไม่สามารถเอาชนะได้จะเป็นโซลูชันสองไบต์ซึ่งทำให้เกิดข้อผิดพลาด 1 อักขระ
Zacharý

@ Zacharýแน่นอน lol
HyperNeutrino

5

Lisp สามัญ , 20 ไบต์

(/ 1 0))))))))))))))

ลองออนไลน์!

ข้อความผิดพลาด

/: division by zero

11
o_o วงเล็บที่ไม่สมดุลใน Lisp ... คุณเรียนรู้สิ่งใหม่ทุกวัน
Zacharý

1
หากคุณแทนที่ 0 ด้วย 1 มันจะเกิดข้อผิดพลาดใน parens แต่มันไม่ได้ไกลขนาดนั้นด้วย 0 ฉันแค่ต้องการเพิ่มตัวอักษรให้ยาวกว่าข้อความ
Cheldon


5

Javascript (Firefox), 29 27 ไบต์

new Date('-').toISOString()

พ่นRangeError: invalid dateซึ่งเป็น 24 ไบต์ ทดสอบกับ Firefox 54.0.1 บน Windows 10


5

ZX Spectrum Basic, 9 ไบต์

RUN USR 8

ผลิต:

ข้อความผิดพลาด

คำอธิบาย:

ฉันนับเป็นตัวแทนของโปรแกรม ASCII (เป็นพิเศษ) เพื่อวัตถุประสงค์ด้านความยาวรวมถึงจุดสิ้นสุดของบรรทัด (มันไม่สำคัญจริงๆเพราะเราสามารถวางโปรแกรมที่สั้นกว่าด้วยช่องว่าง)

โดยปกติข้อความผิดพลาด ZX สเปกตรัมมีความยาวและเป็นประโยชน์มากกว่านี้ - ประจำรอมที่ 0x0008 คาดรหัสข้อผิดพลาดต่อไปนี้สายรหัสเครื่องRST 8และเรียกบางสุ่ม (กำหนด) Mไบต์จากรอมซึ่งก่อให้เกิดข้อผิดพลาดนี้ไร้สาระ. 5คือหมายเลขข้อผิดพลาด,ถูกเพิ่มโดยรูทีนการพิมพ์ข้อผิดพลาดและ0:1เป็นบรรทัด: ตำแหน่งคำสั่งของข้อผิดพลาด


ที่จริงแล้วนี่คือ 9 ไบต์โดยปกติแล้วเนื่องจาก ZX Spectrum ไม่ได้ประเมินตัวเลขในขณะใช้งานดังนั้นจึงมี 6 ไบต์ที่ซ่อนอยู่ซึ่งอนุญาตให้เข้าถึงการแทนเลขฐานสองของ 8 โดยตรง
Neil


4

Perl 5 , 5 ไบต์

die$/

เอาต์พุตบรรทัดใหม่หนึ่งไบต์

ลองออนไลน์!


._ ตอนนี้ ... หากข้อผิดพลาดเพียง perl ในไฟล์ว่าง!
Zacharý

4
รอนี่เป็นการละเมิด "โปรแกรมอาจไม่ถูกสร้างขึ้น" หรือไม่? ฉันไม่เข้าใจว่ากฎนั้นพูดอะไร
aschepler

1
@ Zacharý ... ให้ข้อความแสดงข้อผิดพลาดที่มีความยาวรวมเป็นลบหรือไม่
aschepler

1
นี่อาจไม่ถูกต้อง ... หรือไม่ขึ้นอยู่กับว่า OP หมายถึงข้อผิดพลาดหรือข้อความแสดงข้อผิดพลาด
Zacharý

^ clarification: ไม่ว่าจะเป็นข้อผิดพลาดของโปรแกรมโดยตรงหรือสร้างข้อความแสดงข้อผิดพลาดโดยตรง
Zacharý

4

Perl 5 , 11 ไบต์

เนื่องจากฉันไม่ชัดเจนว่าคำตอบอื่นของฉันเป็นไปตามกฎท้าทายหรือไม่นี่เป็นอีกทางเลือกหนึ่ง

#line 0
die

ข้อผิดพลาดเอาท์พุท:

Died.

ด้วยการขึ้นบรรทัดใหม่สิ้นสุดสำหรับ 6 ไบต์

ลองออนไลน์!

ด้วยเหตุผลบางอย่างฟังก์ชั่นภายในของล่ามภาษา Perl Perl_mess_svประกอบด้วย:

if (CopLINE(cop))
    Perl_sv_catpvf(aTHX_ sv, " at %s line %" IVdf,
                    OutCopFILE(cop), (IV)CopLINE(cop));

โดยที่CopLINE(cop)รับหมายเลขบรรทัดของบริบทโค้ดปัจจุบัน ดังนั้นหากหมายเลขบรรทัดนั้นเกิดการประเมินค่าเป็นศูนย์ Perl จะข้ามการเพิ่มข้อความปกติ" at <filename> line <n>"ไปที่ข้อความแสดงข้อผิดพลาด


1
ดูเหมือนว่าไม่ถูกต้องสำหรับฉัน IIRC dieสำหรับโปรแกรมที่จะออก
sergiol

1
มันแตกต่างจากงูใหญ่raiseอย่างไร?
Eric Duminil

ดี OP อาจได้รับหมายถึงทั้งการสร้างข้อผิดพลาดหรือข้อผิดพลาด ฉันแสดงความคิดเห็นเกี่ยวกับสิ่งที่เขาหมายถึง
Zacharý

4

ArnoldC 150 ไบต์

IT'S SHOWTIME
HEY CHRISTMAS TREE b
YOU SET US UP 0
GET TO THE CHOPPER b
HERE IS MY INVITATION b
HE HAD TO SPLIT 0
ENOUGH TALK
YOU HAVE BEEN TERMINATED

ลองออนไลน์!

ข้อผิดพลาดคือ 94 ไบต์ (รวมถึงการขึ้นบรรทัดใหม่):

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at code.main(Hello.java)

เก็บรักษาไว้เพราะฉันคิดว่านี่เป็นเรื่องตลกมากขึ้น - สปอยเลอร์: มันเป็นเพลงแผลง ๆ

ArnoldC , 280 ไบต์

IT'S SHOWTIME
HEY CHRISTMAS TREE BRBDoorBetterNotBeThosePeskyTeenagePranksters
YOU SET US UP 0
GET YOUR ASS TO MARS BRBDoorBetterNotBeThosePeskyTeenagePranksters
DO IT NOW
I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY
YOU HAVE BEEN TERMINATED

pseudocode:

start program
new variable
set to 0
set new variable to output from function
call function
take input
end program

ลองออนไลน์!

สร้างข้อผิดพลาด "ไม่มีอินพุต" (ข้อผิดพลาดอื่น ๆ เกือบทั้งหมดใน ArnoldC รวมถึงส่วนใหญ่ของแผ่นสำเร็จรูป):

279 ไบต์ (รวมถึงการขึ้นบรรทัดใหม่ตาม):

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at code.main(Hello.java)

4

TI-Basic, 9 ไบต์

ข้อความผิดพลาดที่สั้นที่สุด 8 ไบต์ในแต่ละ: ERR:DATE, ERR:MODE, และERR:STAT ERR:ZOOMฉันไม่ได้พิจารณาERR:DATEเพราะมันใช้ไม่ได้กับรุ่นที่ไม่มีนาฬิกาภายใน นอกจากนี้ฉันไม่ได้ไปERR:ZOOMเพราะมันยากเกินไปที่จะกระตุ้น

โปรแกรม (9 ไบต์):

Seq:DrawInv X:::::

ข้อความแสดงข้อผิดพลาด: ERR:MODE(8 ไบต์)

โปรแกรม (9 ไบต์):

median({1},{0::

ข้อความแสดงข้อผิดพลาด: ERR:STAT(8 ไบต์)


3

Ruby, 25 ไบต์

นั่นคือการออกกำลังกายที่สนุกขอบคุณ! อาจมีวิธีรับข้อความแสดงข้อผิดพลาดที่สั้นลงด้วย SegFault แต่ฉันไม่พบสิ่งใด

/\x
# Invalid hexa regexp

ข้อความผิดพลาด:

a:1: invalid hex escape

24 ไบต์รวมถึงบรรทัดใหม่ต่อท้าย

ลองออนไลน์!

ทับทิมขนาด 26 ไบต์

นี่คือคำตอบก่อนหน้าของฉัน:

08
# No 8 allowed in octal

ข้อความผิดพลาด:

a:1: Invalid octal digit

25 ไบต์รวมถึงบรรทัดใหม่ต่อท้าย


ฉันคิดว่าคุณควรแยกคำตอบของคุณ
โซโลมอน Ucko

@SolomonUcko: เหตุผลใดทำไม มีคำตอบมากมายอยู่แล้ว ฉันแค่อยากทิ้งคำตอบก่อนหน้านี้ไว้ คนมักจะแก้ไขจำนวนไบต์ด้วย <s> 26 </s> 25 แต่มักจะมีการเปลี่ยนแปลงเล็กน้อย
Eric Duminil

จริงๆแล้วฉันไม่แน่ใจว่าทำไมฉันพูดแบบนั้นไม่เป็นไร
โซโลมอน Ucko

3

C ++ (สำหรับ macOS High Sierra เบต้า), 23 ตัวอักษร

int main(){*(int*)0=0;}

ผลลัพธ์: (22 ตัวอักษร)

Segmentation fault: 11

ฉันจำไม่ได้ว่า macOS รุ่นก่อนหน้านี้ให้การSegmentation fault (core dumped)ตอบสนองแบบดั้งเดิมมากขึ้นหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.