Subdivision modifier fails on cylinder FYI I am very new to Blender.

I need to:
Create a cylinder with a cavity - just like a cup.

What did I try:


Created a cylinder.
Created a cylinder within it.
Used "Boolean" "difference" to create the cavity.
Smooth result using "Subdivision modifier".


The problem: the "Subdivision modifier" creates a very weird result (see images).





Two questions:


Why this is happening?
How should this be done properly?
No need to use Subdiv modifier which gives you more details but not necessarily smooth shading (unless you have high enough subdivision which is overkill).

How about starting from a cylinder, inset, extrude down, shade smooth and auto-smooth?