Consider a question that

  • Is about some Java code
  • That fails because it throws a NullPointerException
  • That the user wants help debugging
  • And the user includes a short excerpt of code that has the problem
  • But the user does not include a copy of the stack-trace
  • Reading the stack-trace or using a debugger would immediately show the cause of the problem
  • There is no indication that the user has bothered examining the stack-trace, or taking some time to interpret it, or attempted to use a debugger.

Are these questions on topic? And if not, what should the close reason be?

Are these questions on topic?

  • I note that some do not think so.
  • The definitive statement of what is on topic is that Stack Overflow is a question and answer site for professional and enthusiast programmers. No professional or enthusiast programmer would ask such a question: they would already know how to examine a stack-trace or use a debugger. So I believe they should be off topic.

What should the close reason be?

  • I, and others, have considered these questions to be off-topic, and used the minimal understanding close-reason:

    Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results.

    That is, we have ignored the part about "asking for code" and focused on the "minimal understanding" and "attempted solutions".

  • It seems that that close reason will be removed and replaced, leaving us with what as a close reason?

  • It has been suggested that such questions should anyway be closed as duplicates of a question that explains how to debug them. But this seems wrong to me: they are not on-topic duplicates of a question, that should be kept to help point future visitors towards a high quality answer. Their presence lowers the quality of the site, encourages help vampires and pays rep. whores. They are broken windows. And they will remain, because duplicates are not deleted.
  • It might be helpful to have a canonical "How to read a java stack trace" for these sorts of thing. This question looks like its having a go at it – Richard Tingle Jan 8 '14 at 14:21
  • @RichardTingle that is the "close as duplicate" option, the third in my list. – Raedwald Jan 8 '14 at 14:23
  • You ask "Are these questions on topic?" and link to a question with the link text "some do not think so," but the overwhelming majority of answers and votes on that post seem to support the idea that these questions are on topic. – Bill the Lizard Jan 8 '14 at 14:25
  • 1
    @BilltheLizard yes, but Jeff Atwood was one of the people saying they were on topic. – Raedwald Jan 8 '14 at 14:31
  • 2
    I don't see how that supports your argument. – Bill the Lizard Jan 8 '14 at 14:33
  • @BilltheLizard Jeff Atwood is not uncommon to be disagreed with. – John Dvorak Jan 8 '14 at 14:40
  • Are we reading the same answer by Jeff? The one in the link seems to talk about simple typo questions, not the general case of "I have an exception" with no stack trace. – Geobits Jan 8 '14 at 14:45
  • 1
    @JanDvorak Is that a triple negative? I don't know what you're saying. – Bill the Lizard Jan 8 '14 at 14:45
  • @BilltheLizard No Bill, it does not support my argument. But his opinion is important. – Raedwald Jan 8 '14 at 14:55
  • 3
    But Jeff is saying that these questions are mostly on topic, except in the most trivial cases. This seems like it doesn't just not support your argument, it seems to oppose it. – Bill the Lizard Jan 8 '14 at 14:57
  • See "What is a NullReferenceException and how do I fix it?", then do one in Java. – John Saunders Jan 8 '14 at 15:41
  • @JohnSaunders Like this? stackoverflow.com/questions/218384/… – Dennis Meng Jan 8 '14 at 16:58
  • @DennisMeng: exactly, though I made mine CW so that others could edit it to add new cases. – John Saunders Jan 8 '14 at 17:52

Are these questions on topic?

I don't think you'll get a 100% consensus on that, but that's okay. Personally, I usually leave a comment asking for a stack trace. If one is given in a reasonable amount of time, then the system is working as intended. If it goes days without response, I don't see any problem with closing it.

What should the close reason be?

Most cases I see are a better fit for:

Questions concerning problems with code you've written must describe the specific problem — and include valid code to reproduce it — in the question itself.

If they don't give a stack trace, they have not described the specific problem. I also like it more because the question clearly "concerns code you've written", and is not really "asking for code".

Depending on how the question is written, another candidate might be "Unclear what you're asking":

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking.

IMO, this is more for those that read "This code is broken and I don't know why", where there's no indication that an exception is even thrown, etc.

As JDB notes in his answer, "minimal understanding" is too often misused, and people seem to use it as a catch-all for "this isn't worth my time".

  • 2
    While this is a better close reason, in some scenarios "Unclear what you are asking" is a better fit: Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. – JDB still remembers Monica Jan 8 '14 at 14:46
  • 1
    Agreed, both are generally better than "minimal understanding" IMO, depending on how exactly the question is worded. – Geobits Jan 8 '14 at 14:47
  • 2
    I should probably mention that as of now, both "minimal understanding" and "describe the specific problem" have been removed. – Geobits Jan 9 '14 at 19:44
  • Oh good! Those were being severely abused. – JDB still remembers Monica Jan 9 '14 at 19:47

"Minimal understanding" is too often used as if it meant "Off Topic... you're an idiot" or "Off Topic... go away n00b". That's not what it's for.

On most questions where "minimal" has been used (that I've seen), one of the other close reasons would have been more appropriate:

  • duplicate of... is a great close reason because it directs future visitors to a helpful resource (rather than a dead end).

  • unclear what you are asking is often a great fit. Look at the explanation: Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. That seems to cover question that don't have enough information to answer them.

  • too broad is best for questions that tend to spur a lot of guessing-style questions, or where an answer would need to explain how to use a debugger or read the stack trace. There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.

  • As Geobits said, "off topic... Questions concerning problems with code you've written must describe the specific problem — and include valid code to reproduce it — in the question itself. See SSCCE.org for guidance." is a better close reason, as it at least encourages the OP to create a small example project and (in the process) will probably lead them to discover the error on their own.

Each question needs to be examined carefully and closed for a reason appropriate to that question. Trying to pick a single close reason for a generic class of questions is inappropriate and unhelpful both to the OP and to future visitors.

If the question does not fit into one of the above categories, then it should not be closed. As per the description, you should simply downvote it:

This question does not show any research effort; it is unclear or not useful.

A Close Vote is not a Super-Downvote. Please don't use it as one.

Finally... cleaning up broken windows is the responsibility of 10k users via the "delete" feature of the site. As you are not yet a 10k user, this is not something you need to be concerned with yet.

  • 1
    "this is not something you need to be concerned with yet." not so. Anyone who can vote to close is involved in removing broken windows. – Raedwald Jan 8 '14 at 18:04
  • I suppose it depends on your definition of "broken window", but closing a question does not remove it from view. A closed question with an answer is, in my opinion, a broken window. "Removing" a broken window would be deleting it. As you can't do that yet, "removing" it is not really something you need to be concerned with yet. If the question is a duplicate, and can be used as a signpost for someone who might post a similar question, then it should be closed as a duplicate. If it's not a duplicate, then don't close it as such. Whether it will be deleted is not how to choose a close reason. – JDB still remembers Monica Jan 8 '14 at 19:11

I would be reall in favour of a specific close reason for debugging questions, because IMO they are a different class of it's own, than the ones currently given. I see a lot of questions which could be solved by using a debugger, and in some cases it's clear that the poster never bothered to run his code because it doesn't even compile. In which case the "describe the specific problem" reason is appropriate as it also mentions "include valid code".

However if the user managed to post valid code (maybe he forgot to include a stacktrace, mabye not) and it is still evident that the user never bothered to use a debugger 8and there are lots of these questions), in this case I would rather have a close reason which really tells the user that he has to exercise some effort on his own. This is espcially the case for the homework type of questions.

Something like:

The question is off topic because the appropriate tools, to find the solution, were not employed.

I guess there is room for improvement.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .